javascript
표현식인 문과 표현식이 아니문
노엠디엔
2022. 11. 12. 13:41
표현식은 문의 일부일 수도 있고 그 자체로 문이 될 수도 있다.

이 사진과 같이 표현식과 문은 비슷해서 구별하기 어렵다고 느끼게 된다.
표현식과 문을 구별하는 방법에 대해 살펴보자
문에는 표현식인 문과 표현식이 아닌 문이 있다. 표현식인 문은 값으로 평가될 수 있는 문이며, 표현식이
아닌 문은 값으로 평가될 수 없는 문을 말한다. 예를 들어
변수 선언문은 값으로 평가될 수 없다. 따라서 표현식이 아닌 문이다. 하지만
할당 문은 값으로 평가될 수 있다. 따라서 표현식인 문이다.
표현식인 문과 표현식이 아닌 문을 구별하는 가장 간단하고 명료한 방법은 변수에 할당해 보는 것이다.


위 사진들과 같이 표현식인 문은 값으로 평가되므로 변수에 할당할 수 있다.
하지만 표현식이 아닌 문은 값으로 평가할 수 없으므로 변수에 할당하면 에러가 발생한다.

할당문을 값처럼 변수에 할당했다 표현식인 문인 할당 문은 값으로 평가된다.
x = 100은 x 변수에 할당한 값 100으로 평가된다.
완료 값
개발자 도구에서 표현식이 아닌 문을 실행하면 언제나 undefined를 출력한다.
이를 완료 값이라고 부르며, 완료 값은 표현식의 평가 결과가 아니다.
따라서 다른 값과 같이 변수에 할당할 수 없고 참조할 수도 없다.


출처
책: 모던 자바스크립트 Deep Dive