
자바스크립트 언어는 동적인 타입의 언어이기 때문에 타입검사가 어렵다.
⇒ 따라서 상황에 맞게 잘 찾아서 검사를 해야한다.
📍 primitive vs reference
primitive는 '문자열'로 반환
e.g. true, undefined, 123, Symbol() 등이 해당
reference는 대부분 Object로 반환
typeof
instanceof
Object.prototype.toString.call('')
instanceof 연산자의 경우, 결국 최상위인 object를 반환하는 문제점이 있어서 Object.prototype.toString.call('') 이런식으로 검사하는 것도 좋다.

typeof undefined는 undefined가 반환되는데
typeof null는 object 반환 ⇒ 자바스크립트 오류
typeof가 만능은 아니니 쓰임을 조심해야 한다.
‘1’ == 1
1 == true
0 == false
isNaN = is Not a Number = 느슨한 검사이기 때문에
Number.isNaN 엄격한 검사로 안전하게 사용하자
isNaN(123 + 'test') = true
Number.isNaN(123 + 'test') = false //엄격한 검사
강의 출처 : Udemy - 클린코드 자바스크립트