얼레벌레
모던자바스크립트 Deep Dive - 5장 표현식과 문 본문
값은 식(표현식 expression)이 평가되어 생성된 결과를 일컫음
- 모든 값은 data type을 가진다
- 메모리에 2진수, 즉 비트의 나열로 저장된다
- 메모리에 저장된 값은 데이터 타입에 따라 다르게 해석될 수 있다
리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법을 말함
✔️ 리터럴 사용시 다양한 종류의 값을 생성할 수 있다
⇨ 정수, 부동소수점, 2/8/16진수, 문자열, Boolean, null, undefined, 객체, 배열, 함수, 정규표현식 리터럴
표현식은 값으로 평가될 수 있는 문으로 표현식이 평가되면 새로운 값을 생성하거나 기존값을 참조함
➰ 값으로 표현될 수 있는 문은 모두 표현식
➰ 표현식과 표현식이 평가된 값은 동치(equivalent) 관계
var score=100; // 100은 리터럴, 리터럴은 평가되며 값을 생성하므로 그 자체로 표현식
var score=50+50; // 50+50은 리터럴과 연산자로 구성됨. 50+50도 표현식
score; //-> 100. 변수식별자 참조시 값이 생성되진 않지만 평가되므로 표현식
문은 프로그램을 구성하는 기본 단위이자 최소 실행 단위
- 문은 문법적 의미를 가지며, 더이상 쪼개질 수 없는 코드의 기본 요소인 토큰으로 구성된다
- 문은 명령문이라고도 칭함
- 선언문, 할당문, 조건문, 반복문 등으로 구분
- 세미콜론(;)은 문의 종료를 나타냄
⇨ 세미콜론 자동삽입기능(Automatic Semicolon Insertion)이 암묵적으로 실행되지만, 자동삽입기능의 동작과 개발자의 예측이 일치하는 경우도 존재하므로 세미콜론 사용 권장. 단, 중괄호로 묶은 코드블록 뒤에는 자체 종결성을 갖기 때문에 붙이지 않는다.
✔️ 표현식인 문과 표현식이 아닌 문을 구분하는 방법
❗️ 변수 할당 가능 여부 ⇨ 표현식인 문은 할당 가능, 표현식이 아닌 문은 할당 불가능
- 변수 선언문은 표현식이 아닌 문임
- 크롬 개발자 도구에서 표현식인 문을 실행하면 평가된 값을 반환하지만, 표현식이 아닌 문을 실행하면 undefiend를 반환한다.
var x;
var foo=var x; // 불가능-> var x는 표현식이 아닌 문
x = 100;
var foo = x = 100; // 가능-> x = 100은 표현식인 문
'JavaScript > 모던자바스크립트 Deep Dive' 카테고리의 다른 글
모던자바스크립트 Deep Dive - 9장 타입 변환과 단축 평가 (0) | 2022.03.20 |
---|---|
모던자바스크립트 Deep Dive - 8장 제어문 (0) | 2022.03.19 |
모던자바스크립트 Deep Dive - 7장 연산자 (0) | 2022.03.19 |
모던자바스크립트 Deep Dive - 6장 데이터 타입 (0) | 2022.03.14 |
모던자바스크립트 Deep Dive - 4장 변수 (0) | 2022.03.14 |