Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트에서 'var null'은 오류가 나는데 'var undefined'는 오류가 나지 않는 이유

자바스크립트에서 var null과 같이 변수를 선언하면 브라우저가 오류를 발생시킵니다. 그 이유는 null이 예약어(reserved word)로 지정되어 있어 식별자(변수 이름)로 사용할 수 없기 때문입니다.

ECMAScript 사양에서는 다음과 같은 리터럴 값을 식별자로 사용하는 것이 금지되어 있습니다.

null
true
false

undefined란?

undefined는 값이 정의되지 않은 상태를 나타내는 프로퍼티입니다. 즉, 아직 값이 할당되지 않아 '알 수 없는' 상태를 의미하며, 예약어가 아니기 때문에 변수 이름으로 선언해도 오류가 발생하지 않습니다. undefined의 타입 역시 undefined입니다.

예제 코드

// 오류 발생: SyntaxError
var null = 10;

// 문법적으로는 허용됨 (권장하지 않음)
var undefined = 10;

null이란?

null은 '값이 존재하지 않음'을 개발자가 의도적으로 나타낼 때 사용하는, 이미 알려진(defined) 값이자 예약어입니다. 다만 null은 false와 같은 의미가 아니며 서로 다른 별개의 값입니다. 변수를 선언하고 null을 할당하면 해당 변수에는 null이 그대로 저장되며, 출력할 때도 null이 표시됩니다.

정리

  • null: 예약어이므로 변수 이름으로 사용 불가 → var null은 문법 오류(SyntaxError)
  • undefined: 예약어가 아니므로 변수 이름으로 사용 가능 → var undefined는 오류 없이 실행됨