변수에 값이 할당되는 과정
var sum = 10 + 20;
//var sum 변수 선언
//10+20 평가되어 숫자 값 30을 생성
//sum = 30 숫자 값 30이 할당
var score = 100; // 리터럴 100은 엔진에 의해 평가되어 값을 생성하므로 표현식
var score = 50 + 50; // 50+50으로 평가되어 숫자 값 100을 생성하므로 표현식
score; // 값을 생성하진 않지만 변수 식별자를 참조하여 변수 값(100)으로 평가되므로 표현식
//리터럴 표현식
10
"hello"
//식별자 표현식 (선언이 존재한다고 가정)
sum
person.name
arr[1]
// 연산자 표현식
10+20
sum = 10
sum !== 10
// 함수 / 메서드 호출 표현식(선언이 이미 존재한다고 가정)
square()
person.getName()
var x = 1 + 2;
x + 3; // 6
숫자 값으로 평가될 수 있는 표현식(x)를 숫자 값 대신 사용
//변수 선언문
var x;
//할당문
x = 5;
//함수 선언문
function foo () {}
//조건문
if(x>1){console.log(x);}
//반복문
for(var i=0; i<2; i++){console.log(i);}
var x; // 문 o 표현식 x ... 변수 선언문은 값으로 평가될 수 없음
x = 1+2; // 문 o 표현식 o ... 할당문은 값으로 평가될 수 있음
1. 변수 선언문
var foo = var x; // SyntaxError
2. 할당문
var x;
x = 100;
var foo = x = 100;
console.log(foo); // 100
undefined 출력
평가된 값 반환