자바스크립트(ES6)는 7개의 데이터 타입을 제공한다. 7개의 데이터 타입은 원시 타입과 객체 타입으로 분류할 수 있다.
undefined 타입의 값은 undefined가 유일
var 키워드로 선언한 변수는 암묵적으로 undefined로 초기화
자바스크립트 엔진이 변수를 초기화하는 데 사용하는 undefined를 개발자가 의도적으로 변수에 할당한다면 undefined의 본래 취지와 어긋날뿐더러 혼란을 줄 수 있으므로 권장하지 않음
null 타입의 값은 null이 유일
자바스크립트는 대소문자를 구별하므로 null은 Null,NULL 등과 다름
프로그래밍 언어에서 null은 변수에 값이 없다는 것을 의도적으로 명시할때 사용
변수에 null을 할당하는 것은 변수가 이전에 참조하던 값을 더 이상 참조하지 않겠다는 의미 => 자바스크립트 엔진은 가비지 콜렉션 수행
심벌은 ES6에서 추가된 7번째 타입으로, 변경 불가능한 원시 타입의 값
심벌 값은 다른 값과 중복 되지 않는 유일무이한 값 => 주로 이름이 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용
Symbol 함수를 호출해 생성
생성된 심벌값은 외부에 노출되지 않으며, 다른 값과 절대 중복되지 않는 유일무이한 값
자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정(타입추론)
재할당에 의해 변수의 타입은 언제든지 동적으로 변할 수 있음
높은 유연성과 낮은 신뢰성으로 항상 변수명에 유의하며 변수를 최소한으로 사용하고, 스코프를 최소한으로 유지하는 것이 바람직함