[Javascript] null, undefined, undeclared 차이

해피몬·2022년 11월 10일
post-thumbnail

null

  • null은 의도적으로 아무 값도 없음을 나타내기 위해 사용되는 값입니다. 즉, 변수가 null이면 개발자가 해당 변수에 명시적으로 값이 없음을 할당한 것입니다.
let value = null;
console.log(value); // null

여기서 value는 명시적으로 아무 값도 없도록 설정된 상태입니다.

undefined

  • undefined는 변수에 값이 할당되지 않은 상태를 나타냅니다. 즉, 변수를 선언했지만 초기화하지 않았을 때 기본적으로 undefined 값이 할당됩니다.
let value;
console.log(value); // undefined

여기서 value는 선언되었지만 초기화되지 않았기 때문에 undefined 값을 가집니다.

또한, 아래의 경우에도 undefined가 반환됩니다:

변수가 선언되지 않았을 때 (undeclared 변수를 참조할 때 ReferenceError가 발생)
함수에서 명시적으로 값을 반환하지 않을 때

function test() {}
console.log(test()); // undefined

undeclared

  • 선언되지 않은 변수를 의미합니다. 변수를 선언하지 않고 사용하려고 하면, 브라우저는 ReferenceError를 발생시킵니다. 이 변수를 가리켜 undeclared 변수라고 합니다.
  • undeclared 변수는 var, let, 또는 const 키워드를 사용하지 않고 그냥 사용할 때 발생합니다.
console.log(someVariable); // ReferenceError: someVariable is not defined

이 경우 someVariable이 선언되지 않았기 때문에 ReferenceError가 발생합니다.

차이

  • null: 변수가 의도적으로 값이 없음을 설정한 상태. 개발자가 명시적으로 할당.
  • undefined: 변수가 선언되었으나 값이 할당되지 않은 상태. JavaScript에서 자동으로 할당되는 기본값.
  • undeclared: 선언되지 않은 변수를 참조하려 할 때 발생. JavaScript는 이를 인식할 수 없어서 ReferenceError를 던짐.
profile
슬기로운개발생활🤖

0개의 댓글