개발자

변수선언문, 값으로 표현될 수 없는 문인 이유가 뭔가요?

2023년 06월 02일조회 64

deep dive 책을 읽고 있는데 이해가 안 가는 부분이 있어서 질문 올려요! 5장(52페이지) 표현식에서는 undefined는 리터럴이며, 리터럴은 값으로 평가되고 표현식이라고 하는데 그럼 undefined=리터럴=값으로 평가될 수 있는 문(표현식)이라는건데 5.6(57페이지) 예제 05-13에서 변수 선언문은 표현식이 아닌 문이라고 하는건 왜 그런 건가요? 변수 선언문은 초기에 undefined가 할당되는 걸로 알고 있어서 이해하기 어렵네요ㅜㅜ

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

김재성님의 프로필 사진

예를 들어 'var foo;' 라는 선언문이 있다고 하면, 이때 foo는 말씀하신대로 undefined 로 초기화됩니다. 하지만 'var foo;' 전체는 값을 매길 수 없습니다(사실 이 또한 chrome console에 입력하면 undefined로 나오긴 하지만 의미는 없는 거 같아요). 이런 맥락에서 'var foo;' 는 선언문이지 표현식이 아닙니다. 또, 'var foo' 를 undefined 의 값을 갖는 표현식으로 볼 수 있다면 다음 코드가 가능해야 하는데 구문 오류를 발생시킵니다.

1
(var foo) === undefined // SyntaxError

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!