모던 자바스크립트 Deep Dive 정리 2 표현식과 문

김민찬·2022년 4월 27일
0

DeepDive

목록 보기
2/6

표현식이 평가되어 생성된 결과를 값이라고 한다.

10+20은 평가되어 30이라는 값을 생성한다. 모든 값은 타입을 가지고있고, 2진수로 저장된다.

변수 sum에는 10+20이 할당되는 것이 아니라, 10+20의 식이 평가되어 나온 결과인 30이 값으로 할당된다. 즉 10+20은 할당 이전에 평가되어 값을 생성해야 한다.

값은 다양한 방법으로 생성하는데, 기본적으로 리터널을 사용한다.

리터널

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

숫자, 알파벳, 한글, 또는 기호 '',"", [], {}...로 표기한 코드를 리터널이라고 한다. 이를 통해 다양한 종류의 값을 생성할 수 있다.

ex) 1,2,3..(정수 리터널) 10.1, 123.3...(부동소수점 리터널) true, false(불리언 리터널) 등..

표현식

값으로 평가될 수 있는 문을 표현식이라 한다. 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다. 리터널 역시 값으로 평가되기 때문에, 리터널도 표현식이다.

var score = 50+50;

50+50은 리터널과 연산자로 이뤄져 있다. 해당 식이 평가되어 값을 생성하므로 표현식이라 할 수 있다.

이 score변수를 참조하면 생성하지는 않지만, 값으로 평가되기 때문에 이 역시 표현식으로 본다. 이처럼 값으로 평가될 수 있는 문은 모두 표현식이라 할 수 있다.

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

문의 집합으로 이뤄진 것이 바로 프로그램이며, 문을 작성하고 순서에 맞게 나열하는 것이 프로그래밍이다. 문은 여러 토큰으로 구성되는데, 토큰은 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소를 의미한다.

ex)키워드, 연산자, 식별자, 리터널, 세미콜론...

문은 컴퓨터에게 내리는 명령이다. 선언문, 할당문, 조건문 등으로 구분할 수 있다.

세미콜론과 세미콜론 자동 삽입 기능

다른 언어를 경험하고서 자바스크립트를 하면 좀 어색한 부분이 있다. 변수 사용이나 호이스팅같은 것이 그렇다. 그리고 세미콜론 자동 삽입기능도 마찬가지다. 자바스크립트가 문의 끝이라고 예측되는 지점에 세미콜론을 자동으로 붙이기 때문이다.

그렇지만 개발자가 예상한 부분과 자바스크립트가 예측한 부분이 다를 수 있으므로, 세미콜론을 붙이는 쪽을 선호하려 한다.

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

위에서 값으로 평가될 수 있는 문은 표현식이라 한다는 것을 명시했다. 표현식이 아닌 문은 무엇일까? 쉽게 생각하면, 값으로 평가될 수 없는 문은 표현식이 아닌 문이다. 예를 들어 변수 선언문을 보자

var a;

a는 어떤 값으로 평가될 수 없기 때문에 표현식으로 볼 수 없다.

profile
프론트엔드 개발자로 나아가고 있는 김민찬입니다.

0개의 댓글