javascript

표현식인 문과 표현식이 아니문

노엠디엔 2022. 11. 12. 13:41

표현식은 문의 일부일 수도 있고 그 자체로 문이 될 수도 있다.

표현식이 아닌것 과 표현식인 문

이 사진과 같이 표현식과 문은 비슷해서 구별하기 어렵다고 느끼게 된다.

표현식과 문을 구별하는 방법에 대해 살펴보자

 

문에는 표현식인 문과 표현식이 아닌 문이 있다. 표현식인 문은 값으로 평가될 수 있는 문이며, 표현식이 

아닌 문은 값으로 평가될 수 없는 문을 말한다. 예를 들어

변수 선언문은 값으로 평가될 수 없다. 따라서 표현식이 아닌 문이다. 하지만

할당 문은 값으로 평가될 수 있다. 따라서 표현식인 문이다.

 

표현식인 문과 표현식이 아닌 문을 구별하는 가장 간단하고 명료한 방법은 변수에 할당해 보는 것이다.

표현식인 문은 값으로 평가
표현식이 아닌 문은 값처럼 사용시 에러

위 사진들과 같이 표현식인 문은 값으로 평가되므로 변수에 할당할 수 있다.

하지만 표현식이 아닌 문은 값으로 평가할 수 없으므로 변수에 할당하면 에러가 발생한다.

 

표현식인 문은 값처럼 사용 가능

할당문을 값처럼 변수에 할당했다 표현식인 문인 할당 문은 값으로 평가된다.

x = 100은 x 변수에 할당한 값 100으로 평가된다.

 

 

완료 값

개발자 도구에서 표현식이 아닌 문을 실행하면 언제나 undefined를 출력한다.

이를 완료 값이라고 부르며, 완료 값은 표현식의 평가 결과가 아니다.

따라서 다른 값과 같이 변수에 할당할 수 없고 참조할 수도 없다.

표현식아닌문은 실행시 완료 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