[JS] 5장. 표현식과 문

yunny·2023년 8월 6일
0

오늘의 질문
리터럴이 뭐지?

모던자바스크립트 DeepDive 5장 - 표현식과 문

5.1 값

값(value)란, 식(표현식)이 평가되어 생성된 결과를 말한다
평가 : 식을 해석해서 값을 생성하거나 참조하는 것

모든 값은 데이터 타입을 가지며, 메모리에 2진수, 즉 비트의 나열로 저장된다.
(변수에 할당 되는 것은 값)

5.2 리터럴

리터럴(literal)은 사람이 이해할 수 있는 문자 또는 약속 기호를 사용해 생성하는 표기법을 말한다

3은 단순한 아라비아 숫자가 아니라 숫자 리터럴이다.

사람이 이해할 수 있는 아라비아 숫자를 사용한 숫자 리터럴 3
-> 코드에 기술
-> 자바스크립트 엔진이 평가 
-> 숫자 3 생성

이처럼, 리터럴은 사람이 이해할 수 있는 문자 또는 미리 약속된 기호로 표기한 코드이다
그러므로, 리터럴은 값을 생성하기 위해 미리 약속한 표기법이라 할 수 있다.

5.3 표현식

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

여기서, 리터럴은 값으로 평가된다. 따라서 리터럴도 표현식이다.

// 리터럴 표현식
10
'hello'

//식별자 표현식(선언 이미 존재)
sum

// 연산자 표현식
10 + 20
sum !== 20

// 함수/메서드 호출 표현식(선언 이미 존재)
square()
person.getName()

값으로 평가될 수 있는 문은 모두 표현식이다.
이때, 표현식과 표현식이 평가된 값은 동등한 과계, 즉 동치(equivalent)이다.

5.4 문

문(statement)는 프로그램을 구성하는 기본 단위이자 최소 실행 단위이다.

문은 여러 토큰으로 구성된다.
토큰(token)이란 문법적인 의미를 가지며, 문법적으로 나눌 수 없는 코드의 기본 요소를 의미
ex) 키워드, 식별자, 연산자, 리터럴, 세미콜론(;), 마침표(.) 등의 특수 기호

문의 종류

- 선언문
var x; //변수 선언문

- 할당문
x = 5;

- 함수 선언문
function foo () {}

- 조건문
if (x > 1) {console.log(x);}

- 반복문
for (var i = 0; i < 2; i++) {console.log(i)}

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

세미콜론(;)은 문의 종료를 나타낸다.
자바스크립트 엔진은 세미콜론으로 문이 종료한 위치를 파악하고,
순차적으로 하나씩 문을 실행한다.

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

// 변수 선언문은 값으로 평가될 수 없으므로 표현식이 아니다.
var x;

// 아래의 식은 모두 표현식이다.
표현식이면서 완전한 문이기도 하다.
x = 1 + 2;

표현식인 문과 표현식이 아닌 문을 구별하는 가장 간단한 방법은
변수에 할당해 보는 것 !

표현식이 아닌 문을 실행하면 언제나 undefined 출력한다!

profile
기록하지 않으면 잊어버려요 !

0개의 댓글

관련 채용 정보