자바스크립트에서 헷갈릴 수 있는 정의들을 정리해보자.
null
- 빈 값
- null 이라는 빈 값을 할당했을 때, 생기는 타입이다.
var test;
test = null; // 선언한 변수 test에 null값을 할당
console.log(test); // null
console.log(typeof test); // object
undefined
- 정의되지 않음
- var 선언문의 경우, 호이스팅이 되었을 때 변수 선언과 초기화가 동시에 일어나기 때문에, 변수가 undefined 된다. (타입 결정 안됨)
console.log(test); // undefined
console.log(typeof test); // undefined
var test;
undeclared
- 선언되지 않음
- let, const 선언문의 경우, 호이스팅이 되었을 때 변수 선언과 초기화가 따로 이루어지기에, 변수가 되어 에러가 생긴다.
console.log(test); // error
console.log(typeof test); // undefined
let test = 'test';
NaN
- Not-a-Number
- 표현 불가능한 수치형 결과
var test = (1/0);
console.log(test); // Infinity
console.log(typeof test); // number
console.log(typeof 1/0); // NaN
undefined == null , undefined === null
비교연산자 == 는 자료형이 다르면 자동형변환으로 자료형을 강제로 맞춰서 비교하는 연산자이다.
비교연산자 === 는 자료형까지 비교하는 연산자이다.
console.log(undefined == null) // true
console.log(undefined === null) // false
'코딩 > 정말 나는 잘 알고 있을까?' 카테고리의 다른 글
this가 뭐야? (0) | 2022.08.07 |
---|---|
브라우저 저장소가 뭐야? (feat. 쿠키, 세션, jwt) (0) | 2022.08.06 |
절차 지향 프로그래밍 & 객체 지향 프로그래밍이 뭐야? (0) | 2022.08.06 |
JavaScript가 뭐야? (feat. 프로토타입, 싱글 스레드, 비동기적 코딩) (0) | 2022.08.05 |
프로그래밍 언어가 뭐야? (0) | 2022.08.04 |