해당 글은 모던 자바스크립트 Deep Dive 5장을 읽고 정리한 글이다.
0100 0001
을 숫자로 해석하면 65
지만, 문자로 해석하면 "A"
임. ""
, .
, []
, {}
, //
등)를 사용해 값을 생성하는 표기법임. 리터럴 종류 | 예시 |
---|---|
숫자 | 10 , 3.14 |
문자열 | "Hello" , 'Hi' |
불리언 | true , false |
배열 | [1, 2, 3] |
객체 | {x:10, y:20} |
1+2
) 기존 값을 참조함(예: arr[0]
). var score = 100; // 리터럴 100 자체가 표현식
var score = 50 + 50; // 리터럴 + 연산자로 구성된 표현식
score; // 변수 식별자를 참조하면 변수 값으로 평가되므로, 식별자 참조는 표현식
// 리터럴 표현식
10
'Hello'
// 식별자 표현식(선언이 이미 존재한다고 가정)
sum
person.name
arr[1]
// 연산자 표현식
10 + 20
sum = 10
sum !== 10
// 함수/메서드 호출 표현식(선언이 이미 존재한다고 가정)
square()
person.getName()
// 변수 선언문
var x;
// 할당문
x = 5;
// 함수 선언문
function foo() {}
// 조건문
if (x > 1) {
console.log(x);
}
// 반복문
for (var i = 0; i < 2; i++) {
console.log(i);
}
{...}
) 뒤에는 세미콜론을 붙이지 않음. // 변수 선언문은 표현식이 아닌 문
var x;
// 할당문은 그 자체로 표현식이며 동시에 완전한 문(표현식인 문)
x = 100;
// 표현식이 아닌 문은 값처럼 사용할 수 없음
var foo = var x; // SyntaxError: Unexpected token var
// 표현식인 문은 값처럼 사용할 수 있음
var foo = x = 100;
완료 값(Completion Value)
- 크롬 개발자 도구에서 표현식이 아닌 문을 실행하면 언제나 완료 값
undefined
를 출력함. 이를 완료 값이라 부름.- 표현식인 문을 실행하면 평가된 값이 반환됨.