
알고있으면 좋은 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 타입의 공통점과 차이점은?
- 공통점
- 둘다 각각의 타입(undefined, null)의 값이 유일하다.
- 차이점
- undefined는 '정의하지 않음'인 반면에, null은 값이 '없음'이다.
- 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 |