값
- 값 : 식이 평가되어 생성된 결과
- var sum = 10 + 20;
- 변수 sum에 할당되는 것은 10+20이 아니라 평가된 결과인 숫자 값 30 ⇒ 10+20은 할당 이전에 평가되어 값을 생성
- 값을 생성하는 가장 기본적인 방법 : 리터럴 표기법
리터럴
- 리터럴 : 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법
- 자바스크립트 엔진은 런타임에 리터럴을 평가해 값 생성 ⇒ 리터럴은 값을 생성하기 위해 미리 약속한 표기법
- 리터럴 종류
- 정수 리터럴 ex) 100
- 부동소수점 리터럴 ex) 10.5
- 2진수 리터럴 ex) 0b01000001
- 8진수 리터럴 ex) 0o101
- 16진수 리터럴 ex) 0x41
- 문자열 리터럴 ex) ‘hello’ , “world”
- 불리언 리터럴 ex) true, false
- null 리터럴 ex) null
- undefined 리터럴 ex) undefined
- 객체 리터럴 ex) {name: ‘Lee’, address: ‘Seoul’}
- 배열 리터럴 ex) [1, 2, 3]
- 함수 리터럴 ex) function() {}
- 정규표현식 리터럴 ex) /[A-Z]+/g
표현식
- 표현식 : 값으로 평가될 수 있는 문 ⇒ 표현식이 평가되면 새로운 값을 생성하거나 기존 값 참조
- 변수 식별자를 참조하면 변수 값으로 평가됨 → 식별자 참조는 값을 생성하지는 않지만 값으로 평가되므로 표현식임
- 표현식은 리터럴, 식별자(변수, 함수 등의 이름), 연산자, 함수 호출 등의 조합으로 이뤄질 수 있음
- 값으로 평가될 수 있는 문은 모두 표현식
- 표현식과 표현식이 평가된 값은 동등한 관계, 즉 동치
- 표현식을 값처럼 사용할 수 있음 ⇒ 문법적으로 값이 위치할 수 있는 자리에 표현식도 위치할 수 있음
- 표현식이 다른 표현식의 일부가 되어 새로운 값을 만들어낼 수 있음
문
- 문과 표현식을 구별하고 해석할 수 있으면 버그를 줄이고 코드 품질을 높이는 데 도움이 됨
- 문 : 프로그램을 구성하는 기본 단위이자 최소 실행 단위 (명령문이라고 부르기도 함)
- 문의 집합으로 이루어진 것 : 프로그램
- 문을 작성하고 순서에 맞게 나열한 것 : 프로그래밍
- 문은 여러 토큰으로 구성됨
- 토큰 : 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소
- 토큰 종류 : 키워드, 식별자, 연산자, 리터럴, 세미콜론, 마침표 등의 특수 기호
- 문은 선언문, 할당문, 조건문, 반복문 등으로 구분할 수 있음
- 선언문 : 변수 선언
- 할당문 : 값 할당
- 조건문 : 지정한 조건에 따라 실행할 코드 블록 결정되어 실행
- 반복문 : 특정 코드 블록 반복 실행
세미콜론과 세미콜론 자동 삽입 기능
- 세미콜론 (;) - 문의 종료를 나타냄
- 중괄호로 묶은 코드 블록 뒤에는 세미콜론 붙이지 X
- if 문, for 문, 함수 등의 코드 블록은 문의 종료를 의미하는 자체 종결성을 가짐
- 세미콜론 생략 가능
- 자바스크립트 엔진이 소스코드 해석할 때 문의 끝이라고 예측되는 지점에 자동으로 세미콜론을 붙이는 세미콜론 자동 삽입 기능 (ASI = Automatic Semicolon Insertion) 이 암묵적으로 수행됨
- 중괄호로 묶은 코드 블록 뒤에는 세미콜론 붙이지 X
표현식인 문과 표현식이 아닌 문
- 표현식은 문의 일부일 수도 있고, 그 자체로 문이 될 수도 있음
- 표현식인 문 : 값으로 평가될 수 있는 문 ex) 변수 할당문
- 표현식이 아닌 문 : 값으로 평가될 수 없는 문 ex) 변수 선언문
'Web > 모던 자바스크립트 Deep Dive' 카테고리의 다른 글
[모던 자바스크립트 Deep Dive] 07. 연산자 (0) | 2023.08.07 |
---|---|
[모던 자바스크립트 Deep Dive] 06. 데이터 타입 (0) | 2023.08.01 |
[모던 자바스크립트 Deep Dive] 04. 변수 (0) | 2023.07.19 |
[모던 자바스크립트 Deep Dive] 03. 자바스크립트 개발 환경과 실행 방법 (1) | 2023.07.19 |
[모던 자바스크립트 Deep Dive] 02. 자바스크립트 (0) | 2023.07.18 |