
JS에서는 특정 상황에서 undefined에 대한 혼란이 있을 수 있다.
undeclared 는 명시적으로 선언되지 않은 변수를 의미한다.
undeclared 라는 용어는 정확한 기술적 용어는 아니지만, 의미적인 측면에서 undefined 와 구분하기 위해 사용한다고 한다.
typeof 연산자는 자바스크립트에서 유일하게 변수가 선언되지 않았거나 정의되지 않았을 때도 오류를 발생시키지 않는다.
이것을 인지하고 undefined가 혼란을 야기할 수 있는 문제 상황을 살펴보자.
var studentName;
typeof studentName; // "undefined"
typeof doesntExist; // "undefined"
여기서 studentName 은 선언만 되어있고, doesntExist 는 선언조차 되어있지 않지만, 차이가 없이 "undefined" 를 반환한다.
두 변수 참조는 다른 상태이지만 개발자의 혼란을 불러일으킬 수 있다.
하지만 JS 개발자는 doenstExist는 선언이 되어 있지 않기 때문에 undeclared로 인지하고 있는 것이 옳다.
JS 개발자들은 undefined라는 용어를 만나면 그것이 undefined인지 undeclared인지를 혼동하지 않게 주의가 필요하다고 한다!!