변수에는 다양한 데이터 타입 존재
1. 기본 타입(원시 타입: Primitive Type)
1) 숫자 /number : 64비트 부동소수점 형식으로, 모든 숫자를 실수로 처리한다.
2) 문자열 /string : 16비트 유니코드 문자셋(UTF-16)으로 구성된 문자열
+작은따옴표(''), 큰따옴표(""), 템플릿 리터럴(``)으로 문자열을 할당할 수 있다.
+ES6부터 도입된 템플릿 리터럴을 이용하면, 줄바꿈이나 공백이 모두 적용된다.
3) 불린값 /boolean : true, false
4) undefined : 할당되지 않았을 때, 자바스크립트 엔진이 암묵적으로 초기화하는 값(타입도 값도 모두 undefined)
5) null : 의도적으로 '값이 없음'을 명시하기 위해 할당하는 값
+null 타입의 type of 연산 결과는 null이 아니라 object이므로 주의 필요!
+기본 데이터 타입은 객체가 아닌데? 초기 자바스크립트의 버그, 아직 수정x
+따라서 null 값 체크를 위해서는 === 일치 연산자를 사용하는게 좋다.
6) 심벌 /symbol : ES6부터 새로 생긴 데이터 타입.
var sym_01 = Symbol('key');
console.log(typeof sym_01); // symbol
_+변경불가능한 유일한 값을 생성할 때 사용하며, 값 자체의 확인이 불가하여 외부로 노출되지 않는다.
7) beglnt - (An integer with arbitrary precision. For example: 9007199254740992n.)
2. 참조 타입(객체 타입: Object/Reference Type)
1) 객체 /object
2) 배열 /array
3) 함수 /function
4) 정규 표현식 /Regular expressions
+things use with parentheses ex) test()
--> 배열, 함수, 정규표현식도 모두 object다.
typeof returns a string indicating the type of the unevaluated operand.
ex) console.log(typeof 42); // expected output: "number"
내가 조심해야 할 것 - undefined(정의되지 않았다), null(값이 없다)은 단순 error가 아니라 데이터 타입의 종류.