표현식 & 문

박기범·2023년 6월 18일
0

JavaScript 이모저모

목록 보기
3/3

본 게시글은 '모던 자바스크립트 딥 다이브' 도서를 학습하며 정리한 글입니다!

JavaScript를 사용하면서 단순히 기본적인 프로그래밍 지식에 의존하여 문법을 공부하고 쉽게 쉽게만 사용하려했던 경향이 있다.

다시말해 이것은 변수, 이것은 함수 이것은 객체 등등 특정 데이터를 선언하고 할당하는데 필요한 최소한의 지식만 갖추었으며 키워드 하나하나가 어떤 의미를 갖고 있는지는 자세하게 생각해본 적이 없다.

따라서 프로그래밍 언어를 구성하는 기본 요소를 자바스크립트에 기반하여 분석하고 서술해본다.

1. 값

값이란 식이 평가되어 생성된 결과를 의미한다. 이 때 평가란 식을 해석해서 값을 생성하는것을 의미한다. 다음의 코드를 보자.

10 + 10;

30;

'string';

위 코드블럭에 서술된 모든 식들은 전부 값으로 평가된다.

2. 문

프로그래밍 언어를 구성하는 기본 단위이자 최소 실행단위이다. 문이란 '토큰'으로 이루어져 있는데, 이 '토큰'은 프로그래밍 언어믜 문법적인 요소중 최소 단위이며, 더 이상 작은 단위로 나뉠 수 없는 단위를 의미한다.


const result = 10 + 10;

위의 식은 문이다. 그리고 const, result, = ,10, +, ; 의 토큰으로 구성된다.
토큰에는 예약어, 식별자(변수명), 연산자, 리터럴 등등이 모두 포함된다.

3. 리터럴

리터럴은 사람이 이해할 수 있는 문자 혹은 약속된 기호를 사용하여 값을 생성하는 표기법을 의미한다. 리터럴은 평가되어 값을 생성한다.

리터럴에는 정수, 문자열, 불리언 등의 원시 타입에 기반한 다양한 종류가 존재한다.

3. 표현식

값으로 평가될 수 있는 모든 '문' 을 의미한다. 이때 할당문 또한 표현식에 해당하는데, 할당문 자체로 특정 변수에 할당된 값으로써 평가되기 때문이다.

표현식인지 아닌지 구분하는 방법은 간단한데, 그 식을 변수에 할당해보면 된다.
적어도 JS에서는 값으로 평가될 수 있는 식만 변수에 할당할 수 있으므로 변수에 할당이 가능하다면 표현식, 그렇지 않다면 표현식이 아니라고 구분해도 무방하다.


// 리터럴 표현식
10
'test'

// 식별자 표현식 (이하는 모두 앞서 해당 식별자 (or 변수명) 이 선언되어있다고 가정한다.)
test
testObject.name
testArray[1]

// 연산자 표현식
1 + 2
one + two
one === 1


// 함수 호출 포현식
testFunction()

자바스크립트 개발자 도구의 console에서 표현식을 입력하면 그 식의 평가 결과가, 표현식이 아닌 식을 입력하면 완료값인 undefined 가 출력된다. 이 때 이 undefined는 평가 결과가 아님을 유의하라.

profile
원리를 좋아하는 개발자

0개의 댓글