[JavaScript] 표현식과 명령문 그리고 값

sujpark·2022년 4월 9일
0
post-thumbnail

프로그래밍에서 값이란
표현식을 평가해 생성한 결과를 말한다.

x = 30; // 리터럴 30을 평가한 결과인 숫자 30은 값이다.
x = 10 + 20; // 10 + 20 을 평가한 결과인 숫자 30은 값이다.

값은 데이터 타입을 가진다.
컴퓨터는 2진수로 값을 저장하는데 어떤 데이터 타입인지에 따라서 읽는 방법이 달라진다.
ex) 0100 0001 : 65로 읽을 수도 있고, 'A'로 읽을 수도 있다.

리터럴

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

30; // 숫자 30으로 평가되는 리터럴

표현식 (Expression)

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

30; // 표현식
10 + 20; // 표현식
sum = 10 + 20; // 표현식
sum; // 표현식

리터럴은 평가되어 값을 생성하므로 그 자체로도 표현식이다.

명령문 (Statement)

명령문이란 프로그램을 구성하는 기본 단위이자 최소 실행 단위이다.
명령문은 토큰으로 이루어져 있다.

토큰 (token)
문법적으로 의미를 가지면서 더 나눌 수 없는 최소 단위를 말한다.

표현식의 정의에서 알 수 있듯이 표현식은 명령문이다.
명령문은 표현식인 문과 표현식이 아닌 문으로 나눌 수 있다.

var x; // 표현식이 아닌 문
x = 10 + 20; // 표현식인 문

변수의 선언은 값으로 평가될 수 없으므로 표현식이 아닌 문이다.
변수에 할당하는 문은 값으로 평가될 수 있으므로 표현식인 문이다.

명령문이 표현식인지 아닌지 판단할 수 있는 가장 좋은 방법은 변수에 할당하는 것이다.
표현식과 표현식이 평가된 값은 문법적으로 동치이기 때문에
특정한 값이 있을 수 있는 자리에 그 값으로 평가되는 표현식도 있을 수 있다.

var foo = var x; // SyntaxError: Unexpected token var
var bar = x = 10 + 20;
console.log(bar); // 30

참고

이웅모, 『모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리』, 위키북스(2020), p50-57

profile
JavaScript TypeScript React Next.js

0개의 댓글