하루 기록

5장, 표현식과 문 본문

Book/모던 자바스크립트 Deep Dive

5장, 표현식과 문

떼굴펜 2024. 4. 18. 18:17

이 장은 용어 설명이 많아, 용어 별로 나누어 적어보려고 한다.

 

(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 변수에 값을 할당한다.

 

 

 

'Book > 모던 자바스크립트 Deep Dive' 카테고리의 다른 글

10장, 객체 리터럴  (1) 2024.04.19
9-2장, 단축 평가  (2) 2024.04.19
9-1장, 타입 변환  (0) 2024.04.19
6장, 데이터 타입  (2) 2024.04.18
4장, 변수  (0) 2024.04.17