모던 자바스크립트 Deep Dive - Ch05 표현식과 문

hun2__2·2023년 7월 24일
0

책 스터디

목록 보기
3/9

Ch05. 표현식과 문

5.1 값

값이란, 식(표현식)이 평가 되어 생성된 결과이다.

모든 값은 데이터 타입을 가지며 메모리에 2진수(bit)의 나열로 저장된다.

변수는 하나의 값을 저장하기 위해 확보한 메모리 공간, 메모리 공간을 식별하기 위해 붙인 이름으로 변수에 할당되는 것이 값이다.

따라서, 값은 할당 이전에 평가되어 나온 결과이다.

5.2 리터럴

리터럴은 사람이 이해할 수 있는 문자 또는 약속도니 기호를 사용해 값을 생성하는 표기법이다. (아라비아 숫자, 알파벳, 한글, 약속된 기호 등등)

JS엔진은 런타임 시점에 리터럴을 평가해 값을 생성한다

ex) 리터럴 예시

리터럴예시비고
2진수 리터럴0b010000010b로 시작
8진수 리터럴0o1010o로 시작(ES6~도입)
16진수 리터럴0x410x로 시작(ES6~도입)
객체 리터럴{name : “jaehun”}
배열 리터럴[1, 2, 3]
함수 리터럴function() {}

5.3 표현식

표현식은 값으로 평가될 수있는 문(statement)으로, 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다

100, 50+50, 변수참조 등 값으로 평가 될 수 있는 모든 문은 표현식이다

5.4 문(statement)

문 : 프로그램을 구성하는 기본 단위이자 최소 실행 단위

프로그램은 문의 집합이다. 문은 다시 토큰의 집합이다.

토큰 : 문법적인 의미를 가지며 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소

이 전체 문장이 이되고 const, sum, =, 1, +, 2 각각이 토큰이다.

5.5 세미콜론과 세미콜론 자동 삽입 기능

세미콜론(;)는 문의 종료를 나타내며 JS엔진은 j으로 문의 종료 위치를 파악하고 하나씩 문을 실행시킨다

(단, {}로 묶은 문에는 ;를 붙이지 않는다 )

사실, JS엔진이 소스코드를 해석할때 문의 끝이라고 예측되는 지점에 ;를 붙여주기 때문에(세미콜론 자동삽입 기능- ASI) 코딩할 때 생략 가능하다

근데 붙이기를 권장하는 분위기다ㅎ 대세를 따르자

5.6 표현식인 문과 표현식이 아닌 문

표현식 ≠ 문 , 표현식은 문 중 값으로 평가될 수 있는 식이다.

표현식과 문을 구별할 줄 알아야 한다.

표현식은 문의 일부일 수도 있고, 그 자체로 문일 수 있다.

var x; // 변수 선언문은 값으로 평가 될 수 없으므로 문이지만 표현식은 아니다.
x = 1 + 2; // 표현식이며 완전한 문이기도 하다

표현식과 문을 구별하는 방법은 값으로 평가될 수 있는지 여부이다

이를 알기 위해 가장 간단한 방법은 문에 변수에 할당해 보는 것이다.

표현식인 문은 값이므로 변수에 할당이 가능하고 var y = x = 1+2

표형식이 아닌 문은 값이 아니므로 변수에 할당이 불가하다 var y = var x ⇒ Error

profile
과정을 적는 곳

0개의 댓글