📂5장 표현식과 문
값
: 식이 평가되어 생성된 결과
값의 특징
- 모든 값은 데이터 타입을 가짐.
- 메모리에 비트(2진수)의 나열로 저장.
- 저장된 값은 데이터 타입에 따라 다르게 해석될 가능성 있음.
- 예) 0100 0001를 숫자로 해석하면 65, 문자로 해석하면 'A'
- 변수에 할당되는 것은 값임.
var sum = 10 + 20 ; //30
- 10 + 20(식)이 평가되어 값 30을 생성함.
- 변수 sum이 기억하는 메모리 공간에 저장되는 것은 값(30)임. 10+20이 아님.
🔎 용어 정리
- 평가 : 식을 해석해서 값을 생성 하거나 참조 하는일
- 참조 : 변수에 저장된 값을 읽어 들이는 것
값 생성 방법 - 리터럴
: 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법
- 💻 자바스크립트 엔진 : 런타임에 리터럴을 평가해 값을 생성리터럴의 다양한 종류
- 정수 리터럴 : 100
- 문자 리터럴 : "Hello"
- 배열 리터럴 : [1,2,3]
- 정규 표현식 리터럴 /[A-Z]+/g
등등
표현식
: 값으로 평가될 수 있는 문
=> 표현식으로 평가되면 새로운 값을 생성 또는 기존값을 참조함.
리터럴은 그 자체로 표현식이다?
var price = 1000;
- 1000은 숫자 리터럴임.
- 숫자 리터럴인 1000은 자바스크립트 엔진에 의해 평가되어 값을 생성하므로 표현식임.
- 결론 : 값으로 평가될 수 있는문은 모두 표현식
// 리터럴 표현식 10 "Hello" // 식별자 표현식 (아래 식별자는 이미 선언되었다고 가정함.) sum person.age arr[0] // 연산자 표현식 10 + 20 sum += 10 // 함수/메서드 호출 표현식(이미 선언되었다고 가정함.) calculator() person.getAge()
표현식은 다른 표현식의 일부가 되어 새로운 값을 만들 수 있다?
var x = 1 + 2
x + 3 // 6
- var 식별자 표현식(x) = 1 + 2 (연산자 표현식)
- x는 할당되어 있는 숫자 값 3으로 평가
- 그렇기 때문에 숫자가 들어가야할 연산자 표현식에 식별자 표현식인 x가 들어갈 수 있음.
- 다른 표현식(1 + 2)의 일부가 된 표현식(3)은 새로운 값(6)을 만들 수 있음.
문
: 프로그램을 구성하는 기본 단위, 최소 실행 단위
- 문은 여러 토큰으로 구성
- 문은 선언문, 할당문, 조건문, 반복문 등으로 구분
🔎 용어 정리
- 토큰 : 문법적인 의미, 더 이상 나눌 수 없는 코드의 기본 요소
예) var sum = 1 + 2 의 토큰은 var, sum, =, 1, +, 2 를 의미
표현식인 문과 표현식이 아닌 문
- 표현식인 문 : 값으로 평가되므로 변수에 할당
- 표현식이 아닌 문 : 값으로 평가할 수 없으므로 변수에 할당X (에러발생)
var x; // 변수 선언문은 값으로 평가할 수 없으므로 '표현식이 아닌 문'
x = 100; // 할당문은 그 자체로 표현식! 값처럼 사용 가능
진짜 할당문을 값으로 사용 가능한지 확인예제
```js
var moon = x = 100;
console.log(moon) // 100
- x=100은 x변수에 할당한 값 100으로 평가되기 때문에 moon변수에 100이 할당됨.
[모던 자바스크립트 Deep Dive, ⌜이웅모 ⌟, 위키북스, 20210103]를 읽고 정리한 글입니다.
'개발언어 > [JS] deep-dive 정리' 카테고리의 다른 글
[9장] 단축 평가 - 논리 연산자를 사용한 단축 평가 (0) | 2022.12.12 |
---|---|
[9장] 타입 변환 (0) | 2022.12.12 |
8장 제어문 (2) | 2022.12.10 |
6장 데이터 타입 (0) | 2022.12.07 |
4장 변수 (0) | 2022.12.02 |
댓글