개념을 이해한다는 것은 바로 용어를 정확히 이해하고 설명할 수 있다는 것이다.
이번에는 프로그래밍 언어 전반적으로 자주 사용하는 용어의 정의를 알아본다.
값
값(value)은 식(표현식, expression)이 평가(evaluate)되어 생성된 결과를 말한다.
평가란 식을 해석해서 값을 생성하거나 참조하는 것을 의미한다.
var sum = 10 + 20
sum에 할당된 것은 "10+20 " 이 아니라 이 값이 평가된 30이란 숫자다. 즉, 변수 Sum에 할당된 값은 30이다.
리터럴
리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법(notation)을 말한다.
3
위 3은 단순한 숫자가 아닌 숫자 리터럴이다.
사람을 이해할 수 있는 숫자를 사용해 숫자 리터럴 3을 코드에 기술하면 자바스크립트 엔진은 이를 평가하여 숫자 3을 생성한다.
이처럼 리터럴은 사람이 이해할 수 있는 문자(알파벳, 한글) 또는 약속된 기호 ('', [], //) 로 표기한 코드이다.
JS 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성한다. 즉, 리터럴은 값을 생성하기 위해 미리 약속한 표기법이다.
ex). 정수, 부동소수, n진수, 문자열, boolean, null, undefined, 객체, 배열, 함수, 정규표현식
표현식
표현식(expression)은 값으로 평가될 수 있는 문(Statement)이다.
표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다.
var score = 100 //100
var score = 50 + 50 //100
score; //100
score + 70 //170
위 예시들은 모두 100, 100 , 100 ,170이란 값을 평가할 수 있으므로 표현식이다.
마지막 예시처럼 표현식은 다른 표현식의 일부가 될 수도 있으며, 위 예시 말고도 다양한 표현식들이 존재한다.
※ 밑에 나오는 이야기지만, 변수에 할당해서 값이 나오면 표현식, 그렇지 않으면 표현식이 아니다.
ex).
- var score : 표현식 x
- score = 100 : 표현식 0
문
문(Statement)은 프로그램은 구성하는 기본 단위이자 최소 실행단위이다.
문의 집합이 프로그램이고 이런 문을 작성하고 순서에 맞게 나열하는 것이 프로그래밍이다.
문은 여러 토큰으로 구성되며, 흔히 명령문이라고 부른다.
그 외에도 선언문, 조건문, 반복문, 할당문 다양한 문이 있다.
토큰(Token)은 문법적의 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본요소를 의미한다.
예를 들면, 키워드 식별자, 연산자, 리터럴, 세미콜론 등의 특수기호는 문법적인 의미를 가지며 더 나눌 수 없는 코드의 기본 요소이므로 모두 토큰이다.
세미콜론
문의 종료를 나타낸다. 세미콜론은 통해서 JS 엔진은 문이 종료한 위치를 파악하고 순차적으로 하나씩 문을 실행한다.
따라서, 문이 종료되면 세미콜론이 붙어야한다.
하지만. {코드블럭} 은 자체 종결성을 가지기때문에 생략한다.
평소에 우리가 세미콜론을 안 붙여도 되는 이유는 세미콜론 자동 삽입 기능(ASI)리 암묵적으로 실행되기 때문이다.
하지만. 이 기능이 개발자의 예측과 다르게 행동하는 경우가 있고 그에 따라서 에러가 발생한다.
그렇기 때문에, 세미콜론을 반드시 붙이는 걸로 가도록하자
※ 세미콜론 사용 여부에 대해서는 수많은 논쟁이 있지만, 사용을 권장하는 분위기다.
'책과 강연 > 모던 자바스크립트 DeepDive' 카테고리의 다른 글
모던 자바스크립트 Deep Dive 7장 : 연산자 (0) | 2023.04.06 |
---|---|
모던 자바스크립트 Deep Dive 6장 : 데이터 타입 (1) | 2023.04.03 |
모던 자바스크립트 Deep Dive 4장 : 변수 (0) | 2023.03.31 |
모던 자바스크립트 Deep Dive 3장 : 자바스크립트 개발 환경과 실행 방법 (0) | 2023.03.30 |
모던 자바스크립트 Deep Dive 2장 : 자바스크립트란? (0) | 2023.03.19 |