정의: 식(표현식, expression) 이 평가되어 생성된 결과
** 평가(evaluate): 식을 해석해서 값을 생성하거나 참조하는 것
var sum = 10+20; // sum에는 10+20이 아니라 숫자 값 30이 할당된다.
정의: 사람이 이해할 수 있는 문자(아라비아 숫자, 알파벳, 한글 등) 또는 약속된 기호(“”, ’’, ., [], {} 등)를 사용해 값을 생성하는 표기법(notation)
ex)
3 // 숫자 리터럴
‘Hello’ // 문자열 리터럴
정의: 값으로 평가될 수 있는 문(statement), 표현식이 평가되면 새로운 값을 생성하거나 기존값을 참조한다.
예시:
var score = 100; // 리터럴 그 자체로 표현식 = 리터럴 표현식
var score = 50 + 50; // 리터럴과 연산자로 이루어진 표현식 = 연산자 표현식
score; // 변수 식별자 참조는 값으로 평가되므로 표현식이다. = 식별자 표현식
square()
person.getName() // 함수/메서드 호출 표현식 (선언이 이미 존재한다고 가정)
정의: 프로그램을 구성하는 기본 단위이자 최소 실행 단위
** 토큰(token): 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소
ex. 키워드, 식별자, 연산자, 리터럴, 세미콜론(;), 마침표(.) 등의 특수기호
var sum = 1 + 2; // var, sum, =, 1, +, 2 모두 하나의 토큰이다..!
예시)
var x;
var foo = var x; (X)
// 변수 선언문은 값으로 평가될 수 없다. = 표현식이 아닌 문
x = 100;
var foo = x = 100;
// 할당문은 표현식이면서 완전한 문이다. = 표현식인 문
표현식이 아닌 문을 실행하면 undefined(완료 값)를 출력한다
완료 값은 표현식의 평가 결과가 아니므로 변수에 할당하거나 참조할 수 없다.