: 표현식이 평가되어 생성된 결과
: 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법
: 값으로 평가될 수 있는 문(statement)
→ 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조
// 리터럴 표현식
10
'Hello'
// 식별자 표현식 (선언이 이미 존재한다고 가정)
sum
person.name
arr[1]
// 연산자 표현식
10 + 20
sum = 10
sum !== 10
// 함수/메서드 호출 표현식 (선언이 이미 존재한다고 가정)
square()
person.getName()
표현식과 표현식이 평가된 값은 동등한 관계, 즉 동치
→ 표현식은 값처럼 사용할 수 있음
→ 문법적으로 값이 위치할 수 있는 자리에는 표현식도 위치할 수 있음
: 프로그램을 구성하는 기본 단위이자 최소 실행 단위
// 변수 선언문은 값으로 평가될 수 없으므로 표현식이 아님
var x;
// 1, 2, 1 + 2, x = 1 + 2는 모두 표현식
// x = 1 + 2는 표현식이면서 완전한 문
x = 1 + 2;
// 변수 선언문은 표현식이 아닌 문
var x;
// 할당문은 그 자체가 표현식이지만 완전한 문
// 즉, 할당문은 표현식인 문
x = 100;