값은 표현식이 평가되어 생성된 결과이다.
평가란 식을 해석해서 값을 생성하거나 참조하는 것이다.
변수에는 값을 저장하기 위해 확보한 메모리 공간이다. 따라서 변수에 할당되는 것은 값이다.
사람이 이해 가능한 문자 혹은 기호로 값을 생성하는 표기법이다.
정수 리터럴, 문자열 리터럴, 불리언 리터럴, 객체 리터럴, 배열 리터럴, 함수 리터럴 등이 있다.
값을 생성하거나 기존 값을 참조하는 식이다. -> 값으로 평가될 수 있는 문
위의 리터럴도 값으로 평가되므로 표현식이다.
선언문은 식이 아니다. why? 값을 생성하지 않기 때문에
표현식인 문과 표현식이 아닌 문을 구별하는 간단한 방법은 변수에 할당 해보는 것이다.
코드를 실행하는 최소 단위이자 프로그램을 구성하는 최소 단위이다.\
| 구분 | 데이터 타입 |
|---|---|
| 원시타입 | 숫자 타입 |
| 문자열 타입 | |
| 불리언 타입 | |
| undefined 타입 | |
| null 숫자 타입 | |
| 심벌 타입 | |
| 객체타입 | 객체, 함수, 배열 등 |
문자열 1과 숫자 1은 우리가 보기엔 같은 1이라고 생각할 수 있지만 컴퓨터가 처리할 때는 전혀 다른값으로 읽어들인다.
데이터에 따라 확보해야 할 메모리의 공간의 크기도 다르고 메모리에 저장되는 2진수도 다르고 읽어 들여 해석하는 방법도 다르다.
그렇기 때문에 데이터를 저장하거나 참조할 때 데이터 타입에 따라 얼마만큼의 공간을 확보할 것 인지,
또 얼마만큼의 메모리를 한번에 읽어 들일 것인지 자바스크립트 엔진이 데이터 타입에 따라 판단하게 되는 것이다.