반응형
안녕하세요, 윌입니다.
undefined, null, NaN에 대해 정리해봅니다.
자바스크립트에서 undefined, null, NaN는 각각 고유한 의미와 용도를 가진 특수한 값입니다. 이 값들은 각각의 상황에서 다르게 동작하며, 그 차이점을 이해하는 것이 중요합니다.
1. undefined
undefined는 선언되었지만 값이 할당되지 않은 변수에 자동으로 할당되는 값입니다. 또한, 함수가 명시적으로 값을 반환하지 않을 때도 undefined가 반환됩니다.
특징
- 선언은 되었지만 초기화되지 않은 변수의 기본 값:
let a;
console.log(a); // undefined
- 객체의 존재하지 않는 프로퍼티에 접근할 때:
let obj = {};
console.log(obj.property); // undefined
- 함수가 값을 반환하지 않을 때:
function doNothing() {}
console.log(doNothing()); // undefined
2. null
null은 의도적으로 변수에 '없음' 또는 '빈 값'을 할당할 때 사용합니다. 이는 값이 없음을 명시적으로 나타내기 위해 사용됩니다.
* 의도적으로 빈 값을 할당했다는 점에서 undefined와는 확연히 다른 용도로 사용됩니다!
특징
- 의도적으로 빈 값을 할당:
let a = null;
console.log(a); // null
- 객체의 프로퍼티가 의도적으로 빈 값을 가질 때:
let obj = { property: null };
console.log(obj.property); // null
- typeof null은 "object"를 반환하는 특이한 점:
console.log(typeof null); // "object"
3. NaN (Not-a-Number)
NaN는 숫자가 아닌 값을 숫자 연산으로 처리하려고 할 때 발생합니다. 이는 계산 결과가 유효한 숫자가 아님을 나타냅니다.
특징
- 숫자가 아닌 값을 숫자 연산에 사용:
console.log("abc" / 2); // NaN
- NaN은 자기 자신과도 같지 않은 유일한 값:
console.log(NaN === NaN); // false
- isNaN 함수를 사용하여 NaN을 확인:
console.log(isNaN(NaN)); // true
console.log(isNaN("abc")); // true
- Number.isNaN 함수는 더 정확하게 NaN을 확인:
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN("abc")); // false
비교 요약
- undefined: 변수는 선언되었지만 아직 값이 할당되지 않았음을 의미.
- null: 변수가 의도적으로 빈 값을 가짐을 의미.
- NaN: 숫자가 아닌 값을 숫자 연산에 사용하여 유효하지 않은 숫자 결과가 나왔음을 의미.
이 값들은 자바스크립트에서 흔히 사용되며, 각 상황에 맞게 적절히 사용하여 코드를 명확하게 할 수 있습니다.
반응형
'JavaScript' 카테고리의 다른 글
[Typescript] 타입 가드란? 타입 가드 개념과 쓰는 이유 예시로 파헤치기 (0) | 2024.10.06 |
---|---|
[JavaScript] '==' 와 '==='의 차이? (비교 연산자 파헤치기) (0) | 2024.07.10 |
템플릿 리터럴(Template Literal)이란? (0) | 2024.07.05 |
리터럴(Literal)과 변수(Variable)의 차이는 무엇인가? (0) | 2024.07.05 |
JavaScript 표현식과 문 (0) | 2022.11.23 |