[JavaScript] undefined 와 null 의 차이점

이다은·2023년 7월 19일
0

JavaScript

목록 보기
2/4
post-thumbnail

undefined와 null은 JavaScript에서 모두 값이 없음을 나타내는 것이지만 미묘한 차이가 있다.

null

  • null은 값이 없음을 명시적으로 표현하는데 사용한다.
  • undefined는 값이 지정되지 않은 경우를 의미하지만, null의 경우에는 해당 변수가 어떤 객체도 가리키고 있지 않다는 것을 의미한다.
// 값이 의도적으로 비어있음을 표현하는 경우
let a = null;
console.log(a); // null

const person = { name: 'hyun' };
person.name = null;
console.log(person.name); // null

undefined

  • undefined는 변수가 선언되었지만 값을 할당하지 않은 경우의 기본값이다.
  • 변수가 선언되지 않은 상태에서 접근하면 자동으로 undefined가 할당된다.
  • 함수가 반환값을 지정하지 않거나, 객체의 속성이 존재하지 않는 경우에도 undefined가 반환된다.
// 1. 값을 할당하지 않은 변수
let a;
console.log(a); // undefined

// 2. 함수가 반환 값을 지정하지 않은 경우
function foo() {
  
}
console.log(foo()); // undefined

// 3. 선언되지 않은 변수에 접근한 경우
const obj = { a: 10 };
console.log(obj.b); // undefined

👻 알아둘 점

1. undefined와 null은 동일하지 않다.

console.log(undefined == null); // true
console.log(undefined === null); // false

두 값이 동등성(equality) 비교(==)를 할 경우에는 같은 것으로 취급하지만, 일치성(strict equality) 비교(===)를 할 경우에는 다른 것으로 취급된다.

2. null과 undefined의 type

typeof null // object
typeof undefined // undefined

4개의 댓글

comment-user-thumbnail
2023년 7월 19일

정보가 풍부해서 많은 도움이 되었습니다.

1개의 답글
comment-user-thumbnail
2023년 7월 20일

강아지가 귀여워서 유익했습니다

1개의 답글