핵심 정리
5장 표현식과 문
5.1 값
값은 프로그래밍에서 데이터의 가장 기본적인 요소입니다.
JavaScript에서 값은 숫자, 문자열, 객체, 함수 등 다양한 형태를 취할 수 있습니다.
그리고 값은 식(표현식)이 평가되어 생성된 결과를 말합니다.
var sum = 10 + 20;
여기서 30이 값입니다!
5.2 리터럴
리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법을 말합니다.
리터럴은 값을 코드에 직접 표현하는 방식이라고 생각하시면 쉽습니다.
예를 들어, 30은 숫자 리터럴, "안녕하세요"는 문자열 리터럴, {name: "Alice"}는 객체 리터럴, function() {}는 함수 리터럴입니다.
자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성합니다.
5.3 표현식(Expression)
표현식은 값으로 평가되는 코드 조각이며 값을 생성하는 코드의 단위입니다.
즉, 실행될 때 하나의 값을 반환합니다. 예를 들어, 2 + 2, '안녕!', myFunction(), x > 10 모두 표현식입니다.
값으로 평가될 수 있는 문은 모두 표현식입니다.
5.4 문(Statement)
문은 프로그램을 구성하는 기본 단위이자 최소 실행 단위입니다.
프로그램의 동작을 정의하며, 보통 하나 이상의 표현식을 포함하고 실행을 제어하는 키워드와 구조를 사용합니다.
예를 들어, if 문, for 루프, function 선언 등이 문의 예시입니다.
이러한 문은 특정한 동작을 수행하지만, 직접적으로 값으로 평가되지는 않습니다.
문은 여러 토큰으로 구성됩니다. 토큰이란 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소를 의미합니다.
var sum = 1 + 2;
var : 토큰
sum : 토큰
= : 토큰
1 : 토큰
+ : 토큰
2 : 토큰
; : 토큰
5.5 세미콜론과 세미콜론 자동 삽입 기능
세미콜론(;)은 문의 종료를 나타냅니다.
if 문, for 문, 함수 등의 코드 블록 뒤에는 세미콜론을 붙이지 않습니다. 이러한 코드 블록은 언제나 문의 종료를 의미하는 자체 종결성을 갖기 때문입니다.
자바스크립트는 세미클론은 생략 가능합니다. 엔진이 소스코드를 해석할 때 문의 끝이라고 예측되는 지점에 세미콜론을 자동으로 붙여주는 세미콜론 자동 사입 기능(ASI, autometic semicolon insertion)이 암묵적으로 수행되기 때문입니다.
하지만 세미클론 자동 삽입 기능이 개발자의 예측이 일치하지 않는 경우가 간혹 있습니다.
세미콜론을 반드시 붙여야 한다는 주장과 그의 반대 주장도 설득력이 있지만 TC39(ECMAScript 기술 위원회)도 세미콜론 사용을 권장하는 분위기입니다!
5.6 표현식 문과 표현식이 아닌 문
문에는 표현식인 문과 표현식이 아닌 문이 있다. 표현식인 문은 값으로 평가될 수 있는 문이며, 표현식이 아닌 문은 값으로 평가될 수 없는 문을 말합니다. 표현식인 문과 표현식이 아닌 문을 구별하는 가장 간단하고 명료한 방법은 변수에 할당해 보는 것입니다.
var x; // 변순 선언문은 표현식이 아닌 문입니다.
var foo = var x; // 표현식이 아닌 문은 값처럼 사용할 수 없습니다.
var x;
x = 100;
// 표현식인 문은 값처럼 사용할 수 있습니다.
var foo = x = 100;
새롭게 알게된 내용
- 토큰 용어
- 세미콜론 자동 사입 기능(ASI)
'Javascript' 카테고리의 다른 글
처음부터 시작하는 javascript deep dive(08.제어문) (0) | 2023.12.25 |
---|---|
처음부터 시작하는 javascript deep dive(07.연산자) (0) | 2023.12.25 |
처음부터 시작하는 javascript deep dive(06.데이터타입) (0) | 2023.12.17 |
처음부터 시작하는 javascript deep dive(04. 변수) (0) | 2023.12.10 |
Javascript Class 예제와 Callback 함수 (0) | 2021.07.19 |