본문 바로가기
JS/JavaScript 강의

14. Statements(문장) and Expressions(표현식)

by 박기린 2022. 10. 4.

안녕하세요 박기린입니다.

 

이전 글들에서 statements와 expressions에 대한 언급을 한 적이 몇 번 있었습니다.

하지만 이 말의 뜻이 무엇인지 모르는 분들도 계실 것입니다. 지금부터 설명을 해드리겠습니다.

 


 

 

Statements와 Expressions

if (23 > 18) {
    const str = '23 is bigger';
}

Expressions는 value를 생산하는 식입니다. 예제 코드의 '23 is bigger' 부분은 expression 입니다. str타입으로 된 값을 생성하는 코드이기 때문입니다.

Statements는 하나의 action이 되는 완전한 문장입니다. ' const str = '23 is bigger' '는 statement 입니다. str이라는 변수에 '23 is bigger'라는 expression을 집어넣겠다는 action을 진술하기 때문입니다.

 

자바스크립트에서 흔히 보이는 '; (세미콜론)'으로 끝나는 문장은 모두 statement입니다.

if/else 문, switch 문 또한 값을 생성하는 것이 아니라 하나의 비교과정을 진술하는 것이기 때문에 statements라고 할 수 있습니다.

 


 

 

구분이 필요한 이유

자바스크립트에서는 Statements와 Expressions의 구분이 필요한 이유가 있습니다. 바로 특정 상황에서 Expressions만 입력을 받는 경우가 발생하기 때문이죠.

 

 

 

언제 expressions만 쓰이나요?

- template literal

String 타입의 template literal( `${ }` )을 사용할 때, ${ } 안에는 무조건 expressions만 넣을 수 있습니다.

console.log(`I'm ${2037 - 1991} years old`)
// console.log(`I'm ${if()} years old`) // Expression expected. SyntaxError 발생.

만약 ${ }안에 if문을 넣게 된다면, 에러가 발생합니다. if 문은 statements이기 때문입니다.

 

console.log(`I like to drink ${age >= 18 ? 'wine' : 'water'}`);
하지만 if 문을 사용하고 싶은 경우, 대안으로 삼항 연산자를 사용할 수 있습니다. 삼항 연산자는 expressions로 구분되기 때문입니다.
 

 

 

 

 

반응형