코딩/정말 나는 잘 알고 있을까?

null, undefined, undeclaered, NaN 이 뭐야?

호상박 2022. 8. 6. 18:17

자바스크립트에서 헷갈릴 수 있는 정의들을 정리해보자.

 

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

 

https://sudo-heedongdev.tistory.com/6

 

[자바스크립트] undefined vs undeclared vs null의 차이점

javascript에서 헷갈려하는 null과 undefined의 차이점과 undeclared 변수가 무엇인지, NaN은 무엇인지에 대해 알아보자. 참고자료1 참고자료2 [목차] undefined 변수 undeclared 변수 null이란 undefined와 null..

sudo-heedongdev.tistory.com

https://github.com/Esoolgnah/Frontend-Interview-Questions/blob/main/Notes/important-4/null-undefined-undeclared-nan.md

 

GitHub - Esoolgnah/Frontend-Interview-Questions: 프론트엔드 중요도별 면접질문 + 용어 설명 ⭐️

프론트엔드 중요도별 면접질문 + 용어 설명 ⭐️. Contribute to Esoolgnah/Frontend-Interview-Questions development by creating an account on GitHub.

github.com