일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 구글 로그인
- 코드카타
- 셋팅
- array정적메서드
- 스파르타코딩클럽
- vercel
- 초기셋팅
- git
- 티스토리챌린지
- deep dive
- 코테
- 코딩테스트
- Next
- domain
- js
- vscode
- 프로그래머스
- 프로젝트 셋팅
- CORS
- 리터럴
- 모던자바스크립트
- error
- 소셜 로그인
- 자주 까먹는
- 내일배움캠프
- useRouter
- nextjs
- 오블완
- React
- 모던 자바스크립트
- Today
- Total
파피루스
5장, 표현식과 문 본문
이 장은 용어 설명이 많아, 용어 별로 나누어 적어보려고 한다.
(1) 명령문과 토큰
var sum = 10 + 20;
위의 내용은 'sum 이라는 변수에 10 + 20 라는 값을 할당해줘'라는 뜻이다.
이처럼 프로그램을 실행할 수 있는 최소의 단위를 문 또는 명령문(statement)이라고 한다.
예시의 명령문은 총 7개( var sum = 1 + 2 ; )의 토큰으로 구성되어 있다.
토큰은 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소이다.
(2) 값
var sum = 10 + 20;
var score = sum + 5;
var sum = 10 + 20; 에서 변수 sum 에 할당되어 있는 값은 30이다. (10 + 20 이 아니다)
10 + 20 라는 식을 해석한 30이라는 값을 생성하여 sum 변수에 할당한 것이다.
위 내용을 추상적으로 얘기해보면, 값(value)이란 식이 평가되어 생성한 결과를 말한다.
평가란?
: 식을 해석해서 값을 생성하거나 참조하는 것
(3) 표현식
표현식(expression)은 값으로 평가될 수 있는 문(statement)다.
var sum; // 변수 선언은 표현식이 아니다.
sum + 3; // 표현식이다.
'Hello'; // 표현식이다.
sum = 1 + 2; // 할당문은 그 자체가 표현식이며 완전한 문이다.
(4) 리터럴
리터럴(literal)은 사람이 이해할 수 있는 문자(아라비아 숫자, 알파벳, 한글 등) 또는 약속된 기호( [], {}, ., 등)를 사용해 값을 생성하는 표기법(notation)이다. 자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성한다. 즉, 값을 생성하기 위해 미리 약속한 표기법이다.
'리터럴을 평가해서 값을 생성한다'라는 말인 즉, 리터럴도 표현식이라는 뜻이다.
4-1) 리터럴의 종류
참고로 데이터 타입과 리터럴은 다르다. 자바스크립트는 8개의 데이터 타입을 제공한다. 정수 리터럴, 부동소수점리터럴 방식 두가지 다 숫자 타입에 속한다. 자세한 것은 6장 데이터 타입에서..
리터럴 | 예시 |
정수 리터럴 | 100 |
부동소수점 리터럴 | 10.5 |
2진수 리터럴 | 0b01000001 |
8진수 리터럴 | 0o101 |
16진수 리터럴 | 0x41 |
문자열 리터럴 | 'hello' "World" |
불리언 리터럴 | true false |
null 리터럴 | null |
undeinfed 리터럴 | undefined |
객체 리터럴 | {name : '떼굴펜', age:5} |
배열 리터럴 | [1, 2, 3] |
함수 리터럴 | function () {} |
정규 표현식 리터럴 | /[A-Z]+/g |
4-2) 예시와 설명
var text = '나는 7살입니다.';
위 명령문은 문자열 리터럴과 같은 표기법을 사용하고 있다.
자바스크립트 엔진은 문자열 리터럴로 값을 평가해서 text 변수에 값을 할당한다.
'Book > 모던 자바스크립트 Deep Dive' 카테고리의 다른 글
10장, 객체 리터럴 (1) | 2024.04.19 |
---|---|
9-2장, 단축 평가 (2) | 2024.04.19 |
9-1장, 타입 변환 (0) | 2024.04.19 |
6장, 데이터 타입 (2) | 2024.04.18 |
4장, 변수 (0) | 2024.04.17 |