표현식은 문의 일부일 수도 있고 그 자체로 문이 될 수도 있다.
이 사진과 같이 표현식과 문은 비슷해서 구별하기 어렵다고 느끼게 된다.
표현식과 문을 구별하는 방법에 대해 살펴보자
문에는 표현식인 문과 표현식이 아닌 문이 있다. 표현식인 문은 값으로 평가될 수 있는 문이며, 표현식이
아닌 문은 값으로 평가될 수 없는 문을 말한다. 예를 들어
변수 선언문은 값으로 평가될 수 없다. 따라서 표현식이 아닌 문이다. 하지만
할당 문은 값으로 평가될 수 있다. 따라서 표현식인 문이다.
표현식인 문과 표현식이 아닌 문을 구별하는 가장 간단하고 명료한 방법은 변수에 할당해 보는 것이다.
위 사진들과 같이 표현식인 문은 값으로 평가되므로 변수에 할당할 수 있다.
하지만 표현식이 아닌 문은 값으로 평가할 수 없으므로 변수에 할당하면 에러가 발생한다.
할당문을 값처럼 변수에 할당했다 표현식인 문인 할당 문은 값으로 평가된다.
x = 100은 x 변수에 할당한 값 100으로 평가된다.
완료 값
개발자 도구에서 표현식이 아닌 문을 실행하면 언제나 undefined를 출력한다.
이를 완료 값이라고 부르며, 완료 값은 표현식의 평가 결과가 아니다.
따라서 다른 값과 같이 변수에 할당할 수 없고 참조할 수도 없다.
출처
책: 모던 자바스크립트 Deep Dive
'javascript' 카테고리의 다른 글
동적 타이핑 (0) | 2022.11.18 |
---|---|
항해 TIL pre-on 마지막날 (0) | 2022.11.12 |
함수 리터럴(2) (0) | 2022.11.12 |
함수 리터럴 (0) | 2022.11.11 |
함수 맛보기? (0) | 2022.11.11 |