코드치고 무게치고

[javascript] - 표현식과 문, 리터럴 본문

개발공부/Javascript

[javascript] - 표현식과 문, 리터럴

코딩하자영아 2022. 2. 3. 00:18

개념을 이해한다는 것은 용어를 정확히 이해하고 설명할 수 있다는 것이다.
-모던 자바스크립트 Deep Dive p50-

모던 자바스트립트 Deep Dive를 공부하여 자주 나오는 표현들을 정리하고자 이 글을 작성한다.
책을 읽을 때에는 이해한다고 넘겼지만 뒷장으로 넘어갈수록 반복되는 표현들을 앞장으로 넘기며 찾아보는 일이 많이 생겼다.
제대로 이해하지 못했다는 것이다. 다시 이해하고 기억하도록 잘 정리해보자


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

거창한 문장 같지만 하나 하나 보면 어렵지 않다.
하나씩 풀어보자

평가란?

평가란 식을 해석해서 값을 생성하거나 참조하는 것을 의미한다.

예시를 보자
10 + 20 // 30
10 + 20 이란 수식이 평가되어 숫자 30 값을 생성한다.

평가란 간단히 말해 식으로부터 값을 구하는 것이라고 볼 수 있다.

리터럴

표현식을 알아보기 전에 먼저 알아보자

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

예시로 바로 알아보자
3 정수 리터럴이다.
'Hello' 문자열 리터럴이다.
알겠는가??

리터럴은 변수나 상수에 저장되는 값 자체이다.

추가로 말하면
코드 상에서 데이터를 표현하는 방식 이다.
3이라 쓰면 정수 리터럴이고
null이라 쓰면 null 리터럴이다.
function() {}은 함수 리터럴이다.

표현식

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

예시를 보자
let num = 10
num이란 변수에 10 정수 리터럴을 할당하고 있다.
정수 10은 그 자체로 으로 평가된다.
정수 10은 리터럴이다.
그렇다면 리터럴은 값으로 평가되므로 표현식이라 할 수 있다.

let person = 'kim
person

personkim이 저장된 메모리를 참조함으로 값을 생성하지 않지만 값으로 평가되어 표현식이라 할 수 있다.

값으로 평가될 수 있는 문은 모두 표현식이다

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

이 실행되면 명령이 실행되니 명령문이라도 한다.
문의 종류에는 선언문, 할당 문, 조건문, 반복문 등으로 구분할 수 있다.

let x // 선언문

x = 10 // 할당문

if(x >5) // 조건문

등 실행되는 최소 단위가 문이다.

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

값으로 평가 가능한 표현식인 문과
값으로 평가 불가능한 표현식이 아닌 문이 있다.

예시를 보자
let x x 변수를 선언하는 선언문이다. 이 문은 값으로 평가할 수 없다.

x = 1 이건 x 변수에 1을 할당하는 할당 문이다. 할당 문은 값으로 평가할 수 있어 표현식이다.

문이 표현식인지 아닌지가 왜 중요한가??
그것은 값에 할당할 수 있냐 없냐를 판단할 수 있다.

표현식이 아닌 문은 값으로 평가할 수 없어 변수에 할당이 불가능하다.

let foo = let x는에러가 난다. 선언문은 표현식이 아니기 때문이다.
하지만
let foo = x =1 은 정상적으로 실행된다. 할당 문은 값으로 평가되는 표현식이기 때문이다.


간단한 변수로 예시를 들어 이해하는 데는 어렵지 않다.
하지만 뒤에 나오는 함수 파트에서 함수 리터럴, 함수 선언식, 함수 표현식 등등 많은 방식이 나오고 쓰는 것에 따라 해석이 달라지는 경우가 있다.

그 파트를 정리하면서 이 글에서 정리한 내용을 다시 상기해보자!

Comments