[모던 자바스크립트 딥다이브] 표현식과 문

Coooding·2021년 12월 23일
0
post-thumbnail
post-custom-banner

표현식과 문

코딩을 하다보면 표현식과 문(명령문, 선언문 등)이라는 단어를 꽤 들어봤을 것이라고 생각한다.

간단하게 그 내용을 정리해 보았다.

값은 식이 평가되어 생성된 결과를 말한다. 평가란 식을 해석해서 값을 생성하거나 참조하는 것을 의미한다.

10 + 20;

위의 코드는 평가되어 30이라는 숫자 타입의 값을 생성한다.

리터럴

리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법을 말한다.

3 // 숫자 리터럴
'hello' // 문자열 리터럴
true // boolean 리터럴

이런 식으로 우리가 변수에 값을 할당할 때 사용하는것이 리터럴이다.

표현식

표현식은 값으로 평가될 수 있는 문이다.

앞서 설명한 리터럴도 값으로 평가될 수 있기 때문에 표현식이다.

예를 들어보는게 좋을 것 같다.

var value = 50; // 50은 리터럴이므로 표현식이다. 

value; // 변수 식별자를 참조한다. 값을 생성하지는 않지만 값으로 평가되므로 표현식이다. 

문은 프로그램을 구성하는 기본 단위이자 최소 실행 단위다. 문은 토큰 단위로 나누어져 있다.

var value = 50 + 20;

여기서 var, value, =, 50, +, 20, ;으로 문을 나누어볼 수 있다. 이 조각 하나하나가 바로 토큰이다.


var x; // 변수 선언문

x = 5; // 할당문

function foo () {} // 함수 선언문

...

표현식과 표현식이 아닌 문

값으로 평가되는 모든 문들은 표현식이라고 했다.

그렇다면 값으로 평가되지 않는 문도 있을까? 당연히 있다.

var value;

위의 문은 값으로 평가될 수 없다. 리터럴을 할당한 것도 아니고 있던 변수를 참조하는 것도 아니기 때문이다.

가장 간단하게 표현식이 아닌 문을 확인할 수 있는 방법이 있다. 변수에 할당되는지를 확인해보면 된다.


var data = var value; 

위의 코드는 오류를 발생시킨다. var value;는 값으로 평가될 수 없기 때문에 변수에 할당할 수 없다.

이런 식으로 표현식과 표현식이 아닌 문을 구분할 수 있다.

profile
프론트엔드가 재미있는 사람
post-custom-banner

0개의 댓글