5.1 값
값(value)
└ 식이 평가되어 생성된 결과
// 10 + 20은 평가되어 숫자 값 30을 생성
10 + 20; //30
└ 변수에 할당되는 것은 값
// sum에는 10 + 20이 저장되는 것이 아닌 평가된 값인 30이 저장됨
var sum = 10 + 20
└ 모든 값은 데이터 타입을 가지며, 메모리에 2진수(bit의 나열)로 저장
5.2 리터럴
리터럴(literal) : 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법
(literal은 영어로 문자그대로의 라는 의미, 때문에 너무 어렵게 생각하지 말고 고정된 값을 표현하는 방법으로 이해)
➔ 자바스크립트 엔진은 런타임에 리터럴을 평가해 값을 생성
➔ 값을 생성하기 위해 미리 약속한 표기법
리터럴의 종류
5.3 표현식
표현식(expression) : 값으로 평가될 수있는 문
: 표현식이 평가되면 새로운 값을 생성하거나 기존 값 참조
: 리터럴, 식별자(변수, 함수 등의 이름), 연산자, 함수 호출 등 값으로 평가될 수 있는 문은 모두 표현식
표현식의 종류
//리터럴 표현식
10
’Hello’
//식별자 표현식(선언이 이미 존재한다고 가정)
sum
person.name
arr[l]
// 연산자 표현식
10 + 20
sum = 10
sum !== 10
// 함수/메서드 호출 표현식(선언이 이미 존재한다고 가정)
square()
person.getName()
5.4 문
문(statement) : 프로그램을 구성하는 기본 단위이자 최소 실행 단위
토큰 (token) : 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소
문의 종류
//변수 선언문
var x;
//할당문
x = 5;
//함수 선언문
function foo () {}
//조건문
if (x > 1) { console.log(x); }
// 반복문
for (var i = 0; i < 2; i++) { console.log(i); }
5.5 세미콜론과 세미콜론 자동 삽입 기능
세미콜론(;) : 문의 종료 나타냄
└ if문, for문, 함수 등의 코드 블록 뒤에는 세미콜론을 붙이지 않음 ➔ 코드 블록은 자체 종결성을 갖기 때문
└ 문의 끝에 붙이는 세미콜론은 옵션 ➔ 세미콜론 자동 삽입 기능(ASI)가 암묵적으로 수행되기 때문
└ 아래와 같은 경우는 ASI와 개발자의 예측이 일치하지 않는 경우임
function foo () {
return
{}
//ASI의동작 결과 => return; {};
//개발자의 예측 => return {};
}
5.5 표현식인 문과 표현식이 아닌 문
표현식은 문의 일부일 수도 있고 그 자체로 문이 될 수도 있음
└ 표현식* : 값으로 평가될 수 있는 문
└ 표현식인 문과 표현식이 아닌 문을 구별하는 법은 변수에 할당해보는 것
var x; // 변수 선언문은 값으로 평가될 수 없기에 표현식이 아님
x = 1 + 2 //표현식이면서 완전한 문
//표현식인 문은 값처럼 사용 가능
var y = x = 100; //x = 100이라는 표현식은 값처럼 사용 가능
console.log(y); //100
'🦎모던 자바스크립트 Deep Dive' 카테고리의 다른 글
[Chap 08] 제어문 (0) | 2024.04.03 |
---|---|
[Chap 07] 연산자 (0) | 2024.04.01 |
[Chap 04] 변수 (0) | 2024.03.27 |
[Chap 02] 자바스크립트란? (0) | 2024.03.20 |
[Chap 01] 프로그래밍 (0) | 2024.03.19 |