- 값은 표현식이 평가되어 생성된 결과를 말한다.
- 평가는 식을 해석해서 값을 생성하거나 참조하는 것을 의미한다.
- 변수에는 값이 할당된다.
var a = 10 + 20; //10 + 20은 평가되어 30을 생성한다. //a변수에 할당되는 것은 평가된 결과값 30이다.
- 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법.
// 숫자 리터럴 10.50 1001 // 문자열 리터럴 'Hello' "World" // 불리언 리터럴 true false // null 리터럴 null // undefined 리터럴 undefined // 객체 리터럴 { name: 'Lee', gender: 'male' } // 배열 리터럴 [ 1, 2, 3 ] // 정규표현식 리터럴 /ab+c/ // 함수 리터럴 function() {}
- 숫자, 문자열, 불리언과 같은 원시 타입의 리터럴은 다양한 연산자의 피연산자가 되어 하나의 값으로 평가될 수 있다.
- 프로그램을 구성하는 기본 단위이자 최소 실행 단위.
- 문은 여러 토큰으로 이루어진다. 토큰 : 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소.
var sum = 1 + 2; //var, sum, =, 1, 2 ; 모두 토큰이고 한 줄이 문이다.
- 값으로 평가될 수 있는 문.
- 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다.
- 값(리터럴), 변수, 객체의 프로퍼티, 배열의 요소, 함수 호출, 메소드 호출, 피연산자와 연산자의 조합은 모두 표현식이며 하나의 값으로 평가(Evaluation)된다.
// 표현식 'hello' // 리터럴 표현식 5 // 리터럴 표현식 5 * 10 // 연산자 표현식 sum = 10 + 10 // 연산자 표현식 x = x + 1 // 연산자 표현식 square() //함수 표현식 sum //식별자 표현식 var x = 1 + 2; x + 3 // 6. x가 숫자로 평가될 수 있는 표현식이기 때문
- 표현식은 값으로 평가될 수 있기 때문에 값으로 평가될 수 없다면 표현식이 아니다.
- 표현식은 문의 일부일 수도 있고 그 자체로 문이 될 수도 있다.
x = 1 + 2 - ⭕
- ❗ 변수 선언문은 값으로 평가될 수 없으므로 표현식이 아니다.
var a; - ❌
- ❗ 할당문은 표현식이다.
a = 3; - ⭕
- 표현식을 구별하는 가장 간단한 방법은 변수에 할당해보는 것이다.
<모던 자바스크립트 deepdive와, 추가 탐구한 내용을 정리한 포스트입니다.>