데이터 타입
- 값의 종류
- 원시 타입 : 숫자, 문자열, 불리언, null, undefined, 심벌
- 객체 타입 : 객체, 배열, 함수
숫자 타입
- 배정밀도 64비트 부동소수점 형식
- 모든 수는 실수로 처리
- 특별한 값 : Infinity,-Infinity, NaN
문자열 타입
- 변경 불가능한 값
- 작은 따옴표, 큰 따옴표, 백틱
템플릿 리터럴
- 런타임에 일반 문자열로 변환
- 줄바꿈과 모든 공백이 적용됨 ( ',"는 줄바꿈 X)
- 표현식 삽입 가능
- 표현식의 평가 결과가 문자열이 아니더라도 문자열로 타입이 강제 변환되어 삽입
var 성 = 'Kang';
var 이름 = 'Hustle';
console.log(`I am ${성} ${이름}`);
불리언 타입
undefined 타입
- undefined 타입의 값은 undefined 뿐
null 타입
- null 타입의 값은 null뿐
- 변수에 값이 없다는 것을 의도적으로 명시할 때 사용
- typeof 찍으면 object나옴
- 함수가 유요한 값을 반환할 수 없을 때 null 반환
심벌 타입
- 변경 불가능한 원시 타입 값
- 중복이 없는 유일무이한 값
- 객체에 키를 만들 때 사용
- Symbol 함수를 호출하여 생성
var name = Symbol('name');
var person1 = {};
person1[name] = 'husltekang';
객체 타입
- 자바스크립트는 객체 기반 언어, 자바스크립트를 이루고 있는 거의 모든 것이 객체
데이터 타입의 필요성
- 값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정하기 위해
- 값을 참조할 때 한 번에 읽어 들여야 하는 메모리 공간의 크기를 결정하기 위해
- 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정하기 위해
동적 타이핑
- 자바스크립트의 변수는 할당된 값의 데이터 타입에 의해 타입이 결정됨
- 재할당으로 변수의 타입은 언제는 변할 수 있다
이웅모, 『모던 자바스크립트 Deep Dive』, 위키북스(2021)