개발자
deep dive 책을 읽고 있는데 이해가 안 가는 부분이 있어서 질문 올려요! 5장(52페이지) 표현식에서는 undefined는 리터럴이며, 리터럴은 값으로 평가되고 표현식이라고 하는데 그럼 undefined=리터럴=값으로 평가될 수 있는 문(표현식)이라는건데 5.6(57페이지) 예제 05-13에서 변수 선언문은 표현식이 아닌 문이라고 하는건 왜 그런 건가요? 변수 선언문은 초기에 undefined가 할당되는 걸로 알고 있어서 이해하기 어렵네요ㅜㅜ
답변 1
예를 들어 'var foo;' 라는 선언문이 있다고 하면, 이때 foo는 말씀하신대로 undefined 로 초기화됩니다. 하지만 'var foo;' 전체는 값을 매길 수 없습니다(사실 이 또한 chrome console에 입력하면 undefined로 나오긴 하지만 의미는 없는 거 같아요). 이런 맥락에서 'var foo;' 는 선언문이지 표현식이 아닙니다. 또, 'var foo' 를 undefined 의 값을 갖는 표현식으로 볼 수 있다면 다음 코드가 가능해야 하는데 구문 오류를 발생시킵니다.
1
(var foo) === undefined // SyntaxError
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!