// 10 + 20은 평가되어 숫자 값 30을 생성한다.
10 + 20; // 30
// 변수 var에는 10 + 20이 평가되어 생성된 숫자 값 30이 할당된다.
var sum = 10 + 20;
//숫자 리터럴 3
3
리터럴의 종류는 정수, 부동소수점, 2진수, 8진수, 16진수, 문자열, 불리언, null, undefined, 객체, 배열, 함수, 정규 표현식이 있다.
var score = 100;
var score = 50 + 50;
score; // 100
이처럼 표현식은 리터럴, 식별자, 연산자 , 함수 호출 등의 조합으로 이뤄질 수 있다.
즉, 값으로 평가될 수 있는 문은 모두 표현식이다.
키웓, 식별자, 연산자, 리터럴, 세미콜론, 마침표 등의 특수기호는 문법저긴 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소 이므로 모두 토큰이다!
//변수 선언문
var x;
//할당문
x = 5;
//함수선언문
function foo(){}
//조건문
if(x>1){console.log(x);}
//반복문
for(var i=0;i<2;i++;){console.log(i);}
//변수 선언문은 값으로 평가될 수 없으므로 표현식이 아니다!
var x;
// 1, 2, 1+2, x=1+2 는 모두 표현식
// x = 1+2는 표현식이면서 완전한 문이기도 하다.
x = 1+2
//변수 선언문은 표현식 아님
var x;
//할당문은 그 자체가 표현식이며 완전한 문이다. 즉, 할당문은 표현식인 문이다.
x=100;
//표현식이 아닌 문은 값처럼 사용할 수 없다.
var foo = var x; // SyntaxError: Upexpected token var