본문 바로가기
Programming/Node.js

[JavaScript] 모던 자바스크립트 Deep Dive 5장 - 표현식과 문

by HouseDust 2023. 1. 3.
반응형

교재: 모던 자바스크립트 Deep Dive (이웅모 지음)

 

모던 자바스크립트 Deep Dive - YES24

『모던 자바스크립트 Deep Dive』에서는 자바스크립트를 둘러싼 기본 개념을 정확하고 구체적으로 설명하고, 자바스크립트 코드의 동작 원리를 집요하게 파헤친다. 따라서 여러분이 작성한 코드

www.yes24.com

5장, 표현식과 문

값(value): 식(expression)이 평가(evaluate)되어 생성된 결과.

 

리터럴: 사람이 이해할 수 있는 문자 또는 약속된 기호

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

 

문(statement): 프로그램을 구성하는 기본 단위이자 최소 실행 단위, 문은 여러 토큰(token)으로 구성된다.

토큰(token): 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소 (ex. 키워드, 식별자, 연산자, 리터럴, 세미콜론, 마침표 등)

 

문(Statement)의 종류

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

문장의 끝을 의미하는 세미콜론(;)은 옵션이다. 자바스크립트 엔진에서 세미콜론 자동 삽입 기능(ASI)이 암묵적으로 수행되기 때문이다. 하지만 개발자의 예측과 자동 삽입 기능의 동작이 다를 수 있으므로 세미콜론을 잘 적어주도록 하자.

 

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

표현식과 문을 구별하는 가장 간단하고 명료한 방법은 '변수에 할당해보는 것'이다.

// 변수 선언문은 표현식이 아닌 문.
var x;

// 변수에 할당해보면,
var foo = var x; // SyntaxError
var x;

// 할당문은 그 자체가 표현식이면서 완전한 문이다.
x = 10;

// 값처럼 사용 가능.
var foo = x = 10;
console.log(foo); // 10

+ 개발자 도구에서 표현식이 아닌 문을 실행하면 'undefined'를 반환, 표현식을 출력하면 평가된 값을 반환한다.

 

반응형

댓글