Today I Learned 11 - JavaScript Deep Dive / 표현식과 문

angie·2022년 6월 23일
0

JavaScript Deep Dive

목록 보기
2/18
post-thumbnail

본 포스팅은 '모던 자바스크립트 Deep Dive'를 기반으로 공부한 내용을 정리한 것입니다.

문과 표현식을 구별하고 해석할 수 있다면 자바스크립트 엔진의 입장에서 코드를 읽을 수 있고 실행 결과를 예측하는데 도움이 된다.

은 식이 평가되어 생성된 결과이다. 여기서 평가란 식을 해석해서 값을 생성하거나 참조하는 것.

리터럴

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

리터럴예시
정수 리터럴100
2진수 리터럴0b01000001
문자열 리터럴'Hello'
불리언 리터럴true, false
null 리터럴null
undefined 리터럴undefined
객체 리터럴{ name: 'Lee', address: 'Seoul' }
배열 리터럴[1,2,3]
함수 리터럴function() {}
정규 표현식 리터럴/[A-Z]+/g

표현식

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

리터럴은 값으로 평가되므로, 표현식이다.

var score = 50 + 50; // 숫자값 100을 생성하므로 표현식이다.
score; // 식별자 참조, 값을 생성하지는 않지만 값으로 평가되므로 표현식이다.

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

var sum = 1 + 2;

var, sum, =, 1, +, 2, ; 모두 토큰이다.

표현식인 문, 표현식이 아닌 문

먼저 정리하자면,
표현식은 값으로 평가될 수 있는 문이었고, 은 최소 실행 단위이다.
표현식인 문은 값으로 평가될 수 있는 문이며, 표현식이 아닌 문은 값으로 평가될 수 없는 문을 말한다.

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

여기서 표현식인 문은 값처럼 사용할 수 있다.

var foo = x = 1 + 2;
profile
better than more

0개의 댓글