05장 표현식과 문

soonrok·2021년 4월 28일
0

자바스크립트 독학

목록 보기
5/48
post-thumbnail

해당 포스팅은 위키북스의 "모던 자바스크립트 Deep Dive"라는 책을 독학하며 기록하는 글입니다.


값과 리터럴

값은 표현식이 평가되어 생성된 결과를 말한다. 다음 식을 보자.

10 + 20;

위의 식은 30이라는 값으로 평가될 수 있다. 그럼 30이 바로 이라는 것이다.
값은 다양한 방법으로 생설할 수 있는데, 방금의 예처럼 식으로 생성할 수도 있지만 가장 기본적인 방법은 리터럴을 사용하는 것이다.

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

우리가 자바스크립트에서 3이라는 숫자를 적었다면 엄밀히 말하면 3은 아라바아 숫자가 아니라 숫자 리터럴이라는 것이다. 자바스크립트 엔진은 숫자 리터럴을 만나면 이를 평가해 숫자 값을 생성해 낸다.

이처럼 리터럴은 사람이 이해할 수 있는 문자(아라비아 숫자, 알파벳, 한글 등) 또는 미리 약속된 기호('', "", ., [], {}, //)로 표기한 코드이다.

리터럴예시비고
정수 리터럴100, 200, 300
부동소수점 리터럴10.5, 6.8, 23.1
2진수 리터럴0b101001100b로 시작
8진수 리터럴0o1010o로 시작
16진수 리터럴0xA40x로 시작
문자열 리터럴'Hello', 'Good'
불리언 리터럴true, false
null 리터럴null
undefined 리터럴undefined

표현식과 문

은 프로그램을 구성하는 기본 단위이자 최소 실행 단위이다.
문의 집합으로 이뤄진 것이 바로 프로그램이며, 문을 작성하고 순서에 맞게 나열하는 것이 프로그래밍이다. 더불어 문은 여러 토큰으로 구성된다.

토큰이란 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소를 의미한다.

문은 명렁문이라고도 하며 선언문, 할당문, 조건문, 반복문 등으로 구분할 수 있다. 각각은 각각에 해당하는 일을 동작하며 조건문이라면 지정한 조건에 따라 실행할 코드 블록이 결정되어 실행되고, 반복문이라면 특정 코드 블록이 반복 실행된다.

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

그럼 값으로 평가되는 문인지를 판별하는 법은 무엇일까? 가장 간단한 방법은 해당 문을 어떠한 변수에 할당해 보는것이다. 그리고 해당 문이 어색하지 않다면 표현식이고, 오류가 있다면 표현식이 아닌 그냥 문인 것이다. 다음 예를 보자.

var x			//문1
x = 100			//문2
example = var x		//문1을 example에 할당했는데 뭔가 이상하며 오류가 발생한다.
example = x = 100	//문2를 example에 할당했으며, 실행 가능한 문이다. 그러므로 문2는 표현식이다.

다시 말하면 더 이상 나눌 수 없는 코드의 기본 요소들인 토큰들로 이루어진 것이 이고, 문들이 모여서 만들어진 것이 프로그램이다. 또한 그러한 문들 가운데 값으로 평가될 수 있는 문을 표현식이라 칭한다.


마치며...

세미콜론 ;은 문의 종료를 나타낸다. 자바스크립트 엔진은 세미콜론으로 문이 종료한 위치를 파악하고 순차적으로 하나씩 문을 실행한다. 단, 0개 이상의 문을 중괄호로 묶은 코드 블록 {...}뒤에는 세미콜론을 붙이지 않는다. 이러한 코드 블록은 언제나 문의 종료를 의미하는 자체 종결성을 갖기 때문이다.

사실 자바스크립트에서는 세미콜론 자동 삽입 기능(ASI)가 암묵적으로 수행되기 때문에 명시적으로 안 붙혀줘도 되지만, 이럴 경우 개발자의 의도와 다르게 코드가 수행되는 경우가 있기 때문에 우리는 그냥 붙혀주기로 하자.

크롬 개발자 도구에서 표현식이 아닌 문을 입력하면 항상 undefined를 출력하며 이는 완료 값이라고 한다. 반면 표현식을 입력하면 평가된 값이 출력되게 된다.

profile
I Will be Relaxed Person

0개의 댓글