5장, 표현식과 문
이 장은 용어 설명이 많아, 용어 별로 나누어 적어보려고 한다.
(1) 명령문과 토큰
var sum = 10 + 20;
위의 내용은 'sum 이라는 변수에 10 + 20 라는 값을 할당해줘'라는 뜻이다.
이처럼 프로그램을 실행할 수 있는 최소의 단위를 문 또는 명령문(statement)이라고 한다.
예시의 명령문은 총 7개( var sum = 1 + 2 ; )의 토큰으로 구성되어 있다.
토큰은 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소이다.
(2) 값
var sum = 10 + 20;
var score = sum + 5;
var sum = 10 + 20; 에서 변수 sum 에 할당되어 있는 값은 30이다. (10 + 20 이 아니다)
10 + 20 라는 식을 해석한 30이라는 값을 생성하여 sum 변수에 할당한 것이다.
위 내용을 추상적으로 얘기해보면, 값(value)이란 식이 평가되어 생성한 결과를 말한다.
평가란?
: 식을 해석해서 값을 생성하거나 참조하는 것
(3) 표현식
표현식(expression)은 값으로 평가될 수 있는 문(statement)다.
var sum; // 변수 선언은 표현식이 아니다.
sum + 3; // 표현식이다.
'Hello'; // 표현식이다.
sum = 1 + 2; // 할당문은 그 자체가 표현식이며 완전한 문이다.
(4) 리터럴
리터럴(literal)은 사람이 이해할 수 있는 문자(아라비아 숫자, 알파벳, 한글 등) 또는 약속된 기호( [], {}, ., 등)를 사용해 값을 생성하는 표기법(notation)이다. 자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성한다. 즉, 값을 생성하기 위해 미리 약속한 표기법이다.
'리터럴을 평가해서 값을 생성한다'라는 말인 즉, 리터럴도 표현식이라는 뜻이다.
4-1) 리터럴의 종류
참고로 데이터 타입과 리터럴은 다르다. 자바스크립트는 8개의 데이터 타입을 제공한다. 정수 리터럴, 부동소수점리터럴 방식 두가지 다 숫자 타입에 속한다. 자세한 것은 6장 데이터 타입에서..
리터럴 | 예시 |
정수 리터럴 | 100 |
부동소수점 리터럴 | 10.5 |
2진수 리터럴 | 0b01000001 |
8진수 리터럴 | 0o101 |
16진수 리터럴 | 0x41 |
문자열 리터럴 | 'hello' "World" |
불리언 리터럴 | true false |
null 리터럴 | null |
undeinfed 리터럴 | undefined |
객체 리터럴 | {name : '떼굴펜', age:5} |
배열 리터럴 | [1, 2, 3] |
함수 리터럴 | function () {} |
정규 표현식 리터럴 | /[A-Z]+/g |
4-2) 예시와 설명
var text = '나는 7살입니다.';
위 명령문은 문자열 리터럴과 같은 표기법을 사용하고 있다.
자바스크립트 엔진은 문자열 리터럴로 값을 평가해서 text 변수에 값을 할당한다.