- 자료형(원시형, 참조형)
- 형 변환
- Falsy Data
- 변수(const, let, var)와 호이스팅
NaN (Not a Number)
숫자 데이터지만 숫자로 표기가 불가한 데이터.
예를 들어 숫자와 undefined를 곱하면 NaN이 나오는데,
숫자와 다른 데이터를 연산 했을 때 보게 된다.
Undifined & Null
- Undifined
암시적으로 비어있는 값. 값이 할당되지 않은 상태.- Null
명시적으로 비어있는 값. 비어있음을 표시하기 위해 직접 넣어주는 값.
메모리주소로 비교해 일치 여부를 확인한다.
원시형은 생긴게 같으면 메모리주소도 같지만,
참조형은 생긴게 같아도 메모리주소가 다를 수 있다!
const a = {};
const b = {};
console.log(a === b); // false, 참조형이기 때문
// 주의!!
if ('') // 완전한 공백
if (' ') // truthy, 공백 문자는 비어있는 것이 아니다!
Null과 Array는 typeof로 자료형을 정확히 알아낼 수 없다!!
typeof null // object
typeof [] // object
Null과 Undefined 확인 불가.
console.log([].constructor === Array) // true
console.log(Object.prototype.toString.call())
선언부가 유효범위의 최상위로 끌어올려지는 현상.
함수 표현은 호이스팅이 일어나지 않는다.
함수란 기본적으로 명령들을 감싸는 역할을 한다. 외부로부터 매개변수를 이용해 데이터를 받고, 결과값을 반환할 수 있다.
function abc() {} // 선언. 함수 이름이 앞에 있다. 호이스팅 O
const abc = function() {} // 표현. 익명함수를 변수에 할당. 호이스팅 X