본문 바로가기

JavaScript

모던 자바스크립트 Deep Dive / 5장 표현식과 문

개념을 이해한다는 것은 바로 용어를 정확히 이해하고 설명할 수 있다는 것이다.

그러므로 자주 사용할 용어의 의미를 주의 깊게 살펴보자.

값 (Value)

값은 표현식이 평가되어 생성된 결과를 말한다.

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

메모리에 저장된 값은 데이터 타입에 따라 다르게 해석될 수 있다.

리터럴 (literal)

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

자바스크립트는 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성한다.

리터럴의 예시

  • 정수 리터럴
  • 문자열 리터럴
  • 불리언 리터럴
  • null 리터럴
  • undefined, 객체, 배열, 함수 리터럴 등등

표현식 (expression)

표현식은 값으로 평가될 수 있는 문(statement)이다.

표현식은 평가 후 새로운 값 생성 or 기존 값 참조 과정을 거친다.

리터럴, 식별자, 연산자, 함수 호출 등 값으로 평가될 수 있는 문은 모두 표현식이다.

문 (statement)

문은 프로그램을 구성하는 기본 단위이자 최소 실행 단위다.
문은 여러 토큰(token)으로 구성되는데, 토큰이란 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소를 의미한다.

let sum = 1 + 2;

 

이 전체가 하나의 문이며 let, sum, = 등 문법적 의미를 가지나 더 이상 나눌 수 없는 것들이 토큰이다.

문이 실행되면 명령이 실행되고 무슨 일인가 일어나게 된다. 이로인해 문을 명령문이라고 부르기도 하며 기능에 따라

  • 선언문
  • 할당문
  • 조건문
  • 반복문

등으로 구분된다.

 

표현식과 문은 비슷해서 구별하기 어렵다고 느낄 수 있다. 이럴 때는 변수에 할당해 보면 알게된다.
할당이 된다면 표현식일것!

세미콜론

세미콜론(;)은 문의 종료를 나타내기에 문을 끝낼 때는 세미콜론을 붙여야 한다.
0개 이상의 문을 중괄호{}로 묶은 코드 블록은 자체 종결성을 갖기에 세미콜론을 붙이지 않는다.
자바스크립트 엔진에는 세미콜론 자동 삽입 기능(ASI)가 있긴 하지만 오류가 발생하지 않도록 알아서 잘 붙이자.