데이터 타입 자바스크립트의 모든 값은 데이터 타입을 지니며, 7개의 데이터 타입이 존재한다. 모두 원시 타입과 객체 타입으로 나누어진다. 데이터 타입이 필요한 이유는 값 저장 시, 확보할 메모리 공간의 크기 결정 값 참조 시, 한 번에 읽어 들일 메모리 공간의 크기 결정 메모리의 2진수를 어떻게 해석할지를 결정 이다. 자바스크립트는 자바, C와 같은 정적 타입 언어와 다르게 동적 타입 언어이다. 따라서 값을 할당하는 "시점"에 변수의 타입이 동적으로 결정된다. 또한 추후에 원하는 타입으로 자유롭게 변경 가능하다. (재할당) 변수는 타입을 갖지 않으며, 값이 타입을 갖는다. 값에 의해 변수의 타입이 동적으로 결정된다고 할 수 있다! 오늘은 데이터 타입 중에서 원시 타입을 알아보겠다. 원시 타입 (primi..
export 모듈 내의 식별자를 다른 모듈에서 접근하기 위해선 export 키워드를 통해 내보내기 한다. 내보내는 대상은 함수, 변수, 클래스 모두 가능하다. 반드시 모듈의 최상위 위치해야 한다. import 타 모듈에서 내보낸 식별자들을 가져오기 위해선 Import 키워드를 사용한다. 가져올 식별자와 타 모듈의 경로를 함께 작성한다. 반드시 파일의 최상위에 위치해야 한다. named exports 개별 식별자를 내보내는 것을 의미한다. 중괄호({})로 식별자들을 감싸 export, import를 사용한다. // a.js const a = 1; function foo(){ // ... } export { a, foo }; // b.js import { a, foo } from './a.js'; conso..
Map Map 객체는 key와 value의 쌍으로 이루어진 collection이다. 사용법 - Map 객체 생성하기 Map 생성자 함수로 만들 수 있다. 이터러블을 인수로 전달받으며, 키와 값으로 이루어진 요소여야 한다. 인수를 전달하지 않으면 빈 Map 객체가 생성된다. const map = new Map(['key1', 'value1'], ['key2', 'value2']); Map 객체는 중복 Key를 가지지 않는다. key가 중복될 경우, 마지막 값으로 입력된다. - 요소 개수 확인하기 size 프로퍼티로 요소의 개수를 받아온다. const count = map.size; // 2 위에서 생성한 map의 개수는 2개이므로 2가 반환된다. - 요소 추가하기 set 메서드를 사용해 Map 객체에 요소..
10진수 -> n진수 변환 `number` 는 10진수 값 let number = 1023; let binary = number.toString(2); // 2진수 let octal = number.toString(8); // 8진수 let hex = number.toString(16); // 16진수 n진수 -> 10진수 변환 let decimal; let binary = "1111"; decimal = parseInt(binary, 2); // 2진수 -> 10진수 let octal = "177"; decimal = parseInt(octal, 8); // 8진수 -> 10진수 let hex = "3ff"; decimal = parseInt(hex, 16); // 16진수 -> 10진수 n진수에서 n..
화살표 함수를 제외한 모든 함수에서 arguments 객체를 사용할 수 있다. arguments arguments 객체를 통해 함수 호출 시 전달한 인자들을 참조할 수 있다. 유사 배열 객체이기 때문에 인덱스 프로퍼티와 length 프로퍼티 등을 가지고 있다. 사용 방법 arguments로 입력해주면 바로 사용할 수 있다. 배열처럼 index 프로퍼티로 값에 접근할 수 있으며 인자로 받은 값의 갯수를 length 프로퍼티로 받을 수 있다. function sum(x, y, z) { console.log(arguments[0], arguments[1], arguments[2]); // 1, 5, undefined console.log(arguments.length); // 2 arguments[1] = 3..
매개변수와 인자는 동일한 의미 같지만 다르다. 프로그래밍 전반에서 자주 쓰이는 만큼 두 차이를 정확하게 알아보자! function message(name){ // name -> 매개변수 return `Hi, ${name}`; } console.log(message('John'))'; // 'John' -> 파라미터 // 'Hi, John' 인자(argument)란? 인자는 함수를 호출할 때 전달되는 값을 의미한다. 매개변수(parameter)란? 매개변수는 함수에서 전달된 인자를 받아들이는 변수를 의미한다. 함수 내에서 지역변수로 사용된다. 매개변수와 인자 자바스크립트 특성상 느슨하기 때문에 함수를 호출할 때 인자 값, 개수 등을 정확하게 검사하지 않는다. function message(name){ re..
NaN NaN은 Not a Number의 약자로, 숫자가 아니라는 의미이다. 숫자로 변환할 수 없는 값을 변환하려고 할 때나 결과가 숫자가 아니면 NaN을 반환한다. NaN 사용하기 let str = "123"; typeof(str) // string let num = Number(str) // 123 typeof(num) // number Number("abc") // NaN 먼저 NaN을 사용하는 방법을 알아보겠다. 문자열로 감싸진 123의 경우, 숫자로 변환 가능하다. 하지만 abc는 숫자로 변환할 수 없는 값이기에 NaN이라는 결과가 반환된다. NaN === NaN NaN === NaN // false Number("abc") === NaN // false NaN !== NaN // true Na..