
모던 자바 스크립트 Deep Dive
를 공부하며 정리하는 글입니다.
1. 값
<aside>
💡 값이란?
식(표현식)이 평가*되어 생성된 결과를 말한다.
(*평가 : 식을 해석해서 값을 생성하거나 참조하는 것을 의미)
</aside>
- 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름이다.
2. 리터럴
<aside>
💡 리터럴이란?
사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법
</aside>
- 사람이 이해할 수 있는 문자(아라비아 숫자, 알파벳, 한글 등) 또는 미리 약속된 기호(’’, “”, ., [], {}, // 등)로 표기한 코드
- 자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성한다.
- 리터럴은 값을 생성하기 위해 미리 약속한 표기법이라고 할 수 있다.
3. 표현식
<aside>
💡 표현식이란?
- 값으로 평가될 수 있는 문
- 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다.
</aside>
- 표현식은 리터럴, 식별자(변수, 함수 등의 이름), 연산자, 함수 호출 등의 조합으로 이뤄질 수 있다.
- 다양한 표현식이 있지만 값으로 평가된다는 점에서 모두 동일하다.
- 즉, 값으로 평가될 수 있는 문은 모두 표현식이다.
// 리터럴 표현식
10
'Hello'
// 식별자 표현식(선언이 이미 존재한다고 가정)
sum
person.name
arr[1]
// 연산자 표현식
10 + 20
sum = 10
sum !== 10
// 함수/메서드 호출 표현식(선언이 이미 존재한다고 가정)
square()
person.getName()
- 표현식은 값으로 평가되는데 이때 표현식과 표현식이 평가된 값은 동등한 관계, 즉 동치다.
1 + 2 = 3
에서 1 + 2
는 3
과 동치다.
- 표현식은 값처럼 사용할 수 있다.
- 문법적으로 값이 위치할 수 있는 자리에는 표현식도 위치할 수 있다는 것을 의미한다.