expresstion and statement
값(value)?
값(value)는 표현식(expression)이 평가(evaluate)되어 생성된 결과
1 | 10 + 20 ; //30 |
10 + 20은 평가되어 숫자 값 30을 생성
1 | var sum = 10 + 20; |
변수에는 10 + 20이 평가되어 생성된 숫자 값 30이 할당된다.
sum에 할당(assignment)되는 것은 10 + 20이 아니라, 10 +20이 평가된 결과인 숫자 값 30.
10 + 20은 할당 이전에 평가되어 값을 생성해야 한다.
리터럴(literal)?
- 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용하여 값을 생성하는 표기 방식(notaion)
- js 엔진은 코드가 실행되는 시점(runtime)에 literal을 평가하여 값을 생성한다.
표현식(expresstion)?
표현식(expresstion)은 값으로 평가(evaluation)될 수 있는 문(statement)이다.
- 표현식이 평가되면 값을 생성하거나 값을 참조한다.
- 표현식은 리터럴, 식별자(변수,함수 등의 이름), 연산자, 함수 호출 등의 조합으로 이루어질 수 있다. (식별자 참조는 값을 생성하지는 않지만 값으로 평가되므로 표현식)
문(statement)?
문(statement)는 프로그램을 구성하는 기본단위이자 최소 실행 단위이다.
여러 토큰(token)들로 구성된다. (문법적으로 더 이상 나눌 수 없는 코드의 기본요소
ex) 키워드, 식별자, 연산자, 리터럴, 세미콜론; , 마침표. ,명령문이라고도 부름 (선언문, 할당문, 조건문, 반복문)
표현식인 문과 표현식이 아닌 문
표현식은 문의 일부일 수도 있고 그 자체로 문이 될 수도 있다.
표현식인 문과 표현식이 아닌 문을 구별하기 위한 가장 간단하고 명료한 방법은 변수에 할당해 보는 것이다.
- 표현식이 아닌 문
1
2
3
4var x;
변수에 할당
var foo = var x; - 표현식인 문
1
2
3
4x = 100;
변수에 할당
var foo = x = 100;