JavaScript

표현식과 문

값(Value)

JavaScript에서 값은 표현식이 평가되어 생성된 결과다. 모든 값은 데이터 타입을 가지며, 이는 메모리에 저장된 2진수의 해석 방법을 결정한다. 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름이다. 즉, 변수에 할당되는 것은 값이다.

리터럴

리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법이다. JavaScript 엔진은 런타임에 리터럴을 평가해 값을 생성한다. 다양한 리터럴 예시로는 정수 리터럴, 부동소수점 리터럴, 문자열 리터럴, 불리언 리터럴, null 리터럴, 객체 리터럴, 배열 리터럴, 함수 리터럴, 정규 표현식 리터럴 등이 있다.
리터럴
예시
비고
정수 리터럴
100
부동소수점 리터럴
10.5
2진수 리터럴
0b0100001
0b로 시작
8진수 리터럴
0o101
0o로 시작(ES6~)
16진수 리터럴
0x41
0x로 시작(ES6~)
문자열 리터럴
‘hello’
불리언 리터럴
true false
null 리터럴
null
undefined 리터럴
undefined
객체 리터럴
{ name: ‘yang’}
배열 리터럴
[ 1, 2, 3 ]
함수 리터럴
function(){}
정규 표현식 리터럴
/[A-Z]+/g

표현식(Expression)

표현식은 값으로 평가될 수 있는 문이다. 표현식은 리터럴, 식별자, 연산자, 함수 호출 등의 조합으로 이루어져 있으며, 평가되면 새로운 값을 생성하거나 기존 값을 참조한다. 예를 들어, 5 * 10 또는 sum + 10 같은 식은 모두 표현식이다.

문(Statement)

문은 프로그램을 구성하는 기본 단위이자 최소 실행 단위다. 문은 여러 토큰으로 구성되며, 실행되면 무엇인가 일어나게 된다. JavaScript에서는 선언문, 할당문, 조건문, 반복문 등 다양한 종류의 문이 있다.

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

표현식인 문은 값으로 평가될 수 있으며, 예를 들어 할당문은 표현식인 문이다. 반면, 표현식이 아닌 문은 값으로 평가될 수 없으며, 예를 들어 선언문은 표현식이 아닌 문이다. JavaScript에서 표현식이 아닌 문을 실행하면 언제나 undefined를 반환한다.

세미콜론

세미콜론은 문의 종료를 나타내며, 대부분의 경우 문의 끝에 세미콜론을 붙인다. 하지만 코드블록({}) 뒤에는 세미콜론을 붙이지 않는다. JavaScript 엔진은 문의 끝이라고 판단되는 지점에 자동으로 세미콜론을 붙여주는 ASI(자동 세미콜론 삽입) 규칙을 따른다.
JavaScript의 값, 표현식, 문에 대한 이해는 코드의 작성과 해석에 있어 기초적이면서도 핵심적인 요소다. 이러한 기본 개념들을 명확히 이해하는 것은 JavaScript 프로그래밍 능력을 향상시키는 데 중요한 첫걸음이 된다.