모던자바스크립트 DEEPDIVE - chapter 5 표현식과 문
값
- 식이 평가되어 생성된 결과를 뜻함 (평가란 식을 해석하여 값을 생성하거나 참조하는 것을 의미)
변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 혹은 공간을 식별하기 위해 붙인 이름이다.
- 따라서 변수에 할당되는 것은 값
const sum = 10+20;
변수 sum에 할당되는 것은 10+20 이라는 식이 아닌 30이라는 값이다.
값은 식을 통해 생성할 수도 있으나 가장 기본적인 방법은 리터럴을 사용하는 것!
리터럴
리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법
- 사람이 이해할 수 있는 문자 혹은 기호로 표기한 코드로 자바스크립트 엔진은 런타임에 리터럴을 평가해 값을 생성한다.
- 값을 생성하기 위해 미리 약속한 표기법!
리터럴을 사용하여 생성할 수 있는 다양한 종류(data type)의 값
- 정수
- 부동소수점 리터럴
- 2진수 리터럴(0b로 시작시작)
- 8진수 리터럴 0o101 (es6에서 도입, 0o로 시작)
- 16진수 리터럴 0x41 (es6에서 도입, 0x로 시작)
- 문자열 리터럴
- 불리언 리터럴 (true, flase)
- null 리터럴
- undefined 리터럴
- 객체 리터럴
- 배열 리터럴
- 함수 리터럴
- 정규 표현식 리터럴 (/[A-Z]+/g)
표현식
값으로 평가될 수 있는 문, 새로운 값을 생성하거나 기존 값을 참조한다.
- 리터럴은 값으로 평가된다. ->리터럴은 그 자체로 표현식
const a = 100; //100은 리터럴이자 표현식
const b = 50 + 50; // 50은 리터럴, 또한 연산하여 값 100을 생성하므로 표현식
a; // 100, 값을 생성하지는 않지만 평가되므로 표현식
즉, 값으로 평가될 수 있는 문은 모두 표현식이다.
- 표현식은 값으로 평가된다. 표현식과 표현식이 평가된 값은 동등한 관계(동치)이다. -> 표현식은 값처럼 사용할 수 있다.
문
- 프로그램을 구성하는 기본 단위
- 최소 실행 단위
- 문의 집합으로 이루어진 것이 프로그램, 문을 작성하고 순서에 맞게 나열하는 것은 프로그래밍
- 문은 여러개의 토큰으로 구성된다.
- 문법적인 의미를 가지며 문법적으로 더이상 나눌 수 없는 코드의 기본요소
const token = 3 + 3; // 문
const, token, =, 3, +, 3, ; //는 문법적으로 더이상 나눌 수 없는 토큰
- 선언문 / 할당문 / 조건문 / 반복문 등으로 구분된다.
세미콜론과 세미콜론 자동 삽입 기능
;
는 문의 종료를 뜻함- 자바스크립트 엔진은
;
으로 문의 종료를 확인하고 코드를 실행하기 때문에 종료 시마다 작성! - 자바스크립트 엔진엔 세미콜론자동삽입기능(ASI) 있기 때문에 세미콜론 작성 여부는 선택이다.
- 단,
{}
로 묶인 코드 블록 뒤에는 세미콜론을 작성하지 않음!! (e.g if, for, 함수) -> 자체 종결성
표현식인 문과 표현식이 아닌 문
문(표현식이 아닌 문, 표현식인 문)
표현식인 문
- 값으로 평가될 수 있는 문
- 변수 선언문은 표현식이 아니다 !!
표현식이 아닌 문
- 변수 할당문은 표현식이다 !!
- 구글 크롭 개발자 도구에선 완료값을 도출해 내기 떄문에 표현식이 아닌 문을 작성하면 undefined가 나온다.
- 표현식을 작성하면 값이 나옴!
'개발지식 및 기초지식 > JAVASCRIPT' 카테고리의 다른 글
js기초 - 제어문 (0) | 2022.07.14 |
---|---|
js기초 - 연산자 (0) | 2022.07.14 |
js기초 - 데이터타입 (0) | 2022.07.14 |
js기초 - 변수 (0) | 2022.07.14 |
js기초 - node.js, npm, REPL (0) | 2022.07.14 |