반응형
브라우저에서 아무런 선언없이 name를 참조하면 빈 문자열을 반환한다. 전역 객체인 window의 프로퍼티 중에 name이라는 전역변수가 존재하기 때문이라고 한다. 이 변수값은 ''(빈문자열)이다. (단 Node.js 환경에서는 적용되지 않는다)
아래의 경우도 같은 이유에서 NaN이 나오게 되는 것이다. 일단 Javascript의 객체 키 이름에는 기본적으로 -를 사용할 수 없다. 굳이 이렇게 사용하고 싶다면 따옴표를 붙여서 사용해야 한다. 접근할 때도 dot notation은 쓸 수 없고, [대괄호]를 쓰는 bracket notation으로만 접근이 가능하다. dot notation을 쓰는경우 person.first 에서 name을 빼는 것처럼 인식한다고 한다. person.first는 undefined이고, name은 전역변수인 ''(빈문자열)이 되어 두 값으로 연산한 결과 NaN이라는 값이 나오게 된다.
Node.js에서는 브라우저와는 달리 name이라는 전역변수가 존재하지 않기 때문에, name이라는 변수 자체를 찾지 못해 그냥 Reference Error가 발생하게 된다.
반응형
'Web > 소소한 발견' 카테고리의 다른 글
[Javascript 객체] location 객체 (0) | 2021.02.06 |
---|---|
[개발자 도구] enumerable 여부에 따른 속성 색상 표시 (0) | 2021.01.15 |
댓글