[JS] null과 undefined

cabbage·2023년 1월 9일

JS

목록 보기
2/43
post-thumbnail

자바스크립트에서 '값이 없음'을 나타내는 값에는 nullundefined가 존재한다.

null

null은 변수를 선언했지만 아무 값도 할당하지 않아 비어있음을 의도적으로 나타내기 위해 할당하는 값이다.

null은 원시 값 중 하나로, 객체가 아니다.

typeof null

null은 객체가 아니지만 typeof 연산자로 null의 타입을 확인하면 object가 나온다.

typeof null  // object

null의 타입이 object라고 나오는 것은 자바스크립트 초기 버전의 버그라고 한다.

null 타입 체크 방법

null 타입을 체크하려면 엄격한 비교 연산자 ===를 사용하는 것이 좋다.

let foo = null;

foo === null  // true

undefined

undefined는 변수를 선언했지만 아무 값도 할당하지 않았을 때 변수에 암묵적으로 초기화되는 값이다.

undefined는 null과 마찬가지로 원시 값이고, 타입은 undefined이다.

let a;

typeof a  // undefined

아래와 같은 경우 변수가 undefined를 반환한다.

  • 값을 할당하지 않은 변수인 경우
  • 메서드의 파라미터에 아무 값도 전달하지 않은 경우
  • 함수가 값을 반환하지 않는 경우
function foo (a, b) {
    console.log(a, b); // undefined undefined
}

const a = foo();
console.log(a); // undefined

정리

null

  • null은 비어있음을 의도적으로 나타내기 위해 할당하는 값이다.
  • typeof 연산자로 null의 타입을 확인하면 object가 나온다. 따라서 null 타입을 체크하려면 엄격한 비교 연산자 ===를 사용하는 것이 좋다.

undefined

  • undefined는 변수에 아무 값도 할당하지 않았을 때 암묵적으로 초기화되는 값이다.
  • 아무 값도 전달받지 못한 메서드의 파라미터는 undefined로 초기화된다.
  • 함수가 값을 반환하지 않는 경우 undefined를 반환한다.
profile
캐비지 개발 블로그입니다. :)

0개의 댓글