안녕하세요 박기린입니다.
이전 글들에서 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'}`);
'JS > JavaScript 강의' 카테고리의 다른 글
16. JavaScript Releases: ES5, ES6+ 그리고 미래의 JavaScript (0) | 2022.10.06 |
---|---|
15. 조건 (삼항) 연산자 / The Conditional (Ternary) Operator (0) | 2022.10.05 |
13. Switch 문 (0) | 2022.10.03 |
12. 논리 연산자 (Logical Operators) (0) | 2022.10.02 |
11. 동등 연산자(==) vs 일치 연산자(===) (0) | 2022.09.30 |