Study/JavaScript

[JS] undefined & null

taecongs 2023. 10. 26. 10:52

알고있으면 좋은 Javascript Tip✨


undefined 타입과 null 타입은?

  • null과 undefined를 보이는 그대로 해석하면 ‘빈 값’과 ‘없는 값’을 의미하는 것처럼 보이지만 사실 큰 차이점이 있다.

 

(1) undefined

  • undefined는 원시 자료형 undefined로 분류된다.
  • undefined는 ‘아무 값도 할당받지 않은 상태’를 의미한다.
  • 변수 선언에 의해 확보된 메모리 공간을 처음 할당이 이뤄질 때까지 빈 상태로 내버려두지 않고 자바스크립트 엔진이 undefined로 초기화한다.
  • 쉽게 말해, undefined는 개발자가 의도적으로 할당하기 위한 값이 아니라 자바스크립트 엔진이 변수를 초기화 할 때 사용하는 값이다.
// example 변수를 선언만 하고, 값을 할당(초기화)하지 않았다.
let example; 

// undefined
console.log(example);

//true
console.log(example === undefined);

// undefined
console.log(typeof example)

 

(2) null

  • null은 원시 자료형 null로 분류된다.
  • 프로그래밍 언어에서 null은 변수에 값이 없다는 것을 의도적으로 명시(의도적 부재)할 때 사용한다.
  • 변수에 null을 할당하는 것은 변수가 이전에 참조하던 값을 더 이상 참조하지 않겠다는 의미이다.
  • 이는 이전에 할당되어 있던 값에 대한 참조를 명시적으로 제거하는 것을 의미하며, 자바스크립트 엔진은 누구도 참조하지 않은 메모리 공간에 대해 *가비지 콜렉션을 수행할 것이다.
    • 가비지 컬렉션은 프로그램에서 더 이상 사용하지 않는 메모리를 자동으로 정리하는 것이다.
let example = null;

// false
console.log(example === undefined);

// true
console.log(example == undefined); 

// object
console.log(typeof example);

 

(3) undefined 타입과 null 타입의 공통점과 차이점은?

  • 공통점
    1. 둘다 각각의 타입(undefined, null)의 값이 유일하다.
  • 차이점
    1. undefined는 '정의하지 않음'인 반면에, null은 값이 '없음'이다.
    2. undefined의 typeof는 undefined 인 반면, null의 typeof는 object이다.

'Study > JavaScript' 카테고리의 다른 글

[JS] 공백 제거(trim, trimStart, trimLeft, trimEnd, trimRight)  (0) 2023.12.20
[JS] Early Return  (0) 2023.11.20
[JS] Class  (0) 2023.10.26
[JS] getBoundingClientRect  (0) 2023.10.19
[JS] toFixed  (0) 2023.10.19