값, 리터럴, 표현식, 문 구별이 중요한 이유
- 값, 리터럴, 표현식, 문을 구별함으로서 코드를 읽고 실행 결과를 예측할 수 있으며, 이는 버그를 줄이고 코드의 품질을 높여주는데 도움이 됩니다. 또한 이러한 용어를 정확하게 습득함으로서 협업하는 과정에서 의사소통 비용을 줄일 수 있습니다.
값( value )란?
- 값은 식( 표현식 ) 또는 리터럴( literal )이 평가되어 생성된 결과를 말합니다.
평가란?
// 10 + 20을 평가해서 30을 생성
let num = 10 + 20;
- 평가란 위와같은 식을 해석해서 값을 생성하거나 참조하는 것을 의미합니다.
리터럴( literal )
- 리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법을 말합니다.
- 자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성합니다.
리터럴 종류
| 리터럴 |
예시 |
비고 |
| 정수 리터럴 |
200 |
|
| 부동소수점 리터럴 |
20.5 |
|
| 2진수 리터럴 |
0b00010001 |
0b로 시작 |
| 8진수 |
0o101 |
ES6에서 도입. 0o로 시작 |
| 16진수 |
0x41 |
ES6에서 도입. 0x로 시작 |
| 문자열 리터럴 |
"Hello", 'World' |
|
| 불리언 리터럴 |
true, false |
|
| null 리터럴 |
null |
|
| undefined 리터럴 |
undefined |
|
| 객체 리터럴 |
{name:"devhun", address :"seoul"} |
|
| 배열 리터럴 |
[1,2,3] |
|
| 함수 리터럴 |
function() {} |
|
| 정규 표현식 리터럴 |
/[A-Z]+/g |
|
표현식( expression )
- 표현식은 값으로 평가될 수 있는 문( statement )입니다.
- 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조합니다.
리터럴( literal )과 표현식
var isHandsome = true;
- 위 표현식에서
true 리터럴은 값으로 평가되며 결국 위의 식은 표현식입니다.
문( statement )
- 문( statement )은 프로그램을 구성하는 기본 단위이자 최소 실행 단위입니다. 문의 집합으로 이뤄진 것이 바로 프로그램이며, 문을 순서에 맞게 작성하며 나열하는 것이 프로그래밍입니다. 문은 명령문이라고도 부르며 자바 스크립트 엔진은 세미콜론을 통해 문의 종료를 파악하고 이를통해 하나씩 문을 실행합니다.
문의 종류
// 선언문
let x;
// 할당문
x = 5;
// 함수 선언문
function foo() {}
// 조건문
if (x > 3) console.log(x);
// 반복문
for (let i = 0; i < 10; ++i) console.log("Hello World");
- 문은 명령문이라고도 부릅니다. 즉, 문은 컴퓨터에 내리는 명령이며 문의 종류로는 선언문, 할당문, 조건문 반복문 등으로 구분할 수 있습니다.
표현식인 문과 표현식이 아닌 문
// 선언문은 값으로 평가될 수 없으므로 표현식이 아니다.
let x;
// 1 + 2는 값으로 평가되기 때문에 표현식이면서 문이다.
x = 1 + 2;
// 선언문은 변수에 할당할 수 없다.
let z = let y;
// 표현식인 문은 값처럼 사용할 수 있다.
let i = x = 1000;
- 표현식은 문의 일부일 수도 있고 그 자체로 문이 될 수도 있다. 표현식인 문은 변수에 할당이되고 표현식이 아닌 문은 변수에 할당이 안 된다.