
# 값
값
이란 식이 평가
되어 생성된 결과이다.평가
란 식을 해석해서 값을 생성
하거나, 참조
하는 것을 의미한다.변수
란 하나의 값을 저장하기 위해 확보된 메모리 공간
으로, 변수에 할당되는 것은 값
예제
let sum = 10 + 20;
- 변수:
sum
- 평가:
10 + 20
- 값:
10 + 20
의 결과
# 리터럴
사람이 이해할 수 있는 문자
혹은 약속된 기호
를 사용해 값을 생성하는 표기법이다.
3 // 숫자 리터럴 3
자바스크립트 엔진
은 런타임
시점에서 리터럴
값을 평가
해 값을 생성
한다.
리터럴 | 예시 | 비고 |
---|---|---|
정수 | 100 | |
부동소수점 | 10.5 | |
2진수 | 0b01000001 | 0b로 시작 |
8진수 | 0o101 | ES6 에서 도입. 0o로 시작 |
16진수 | 0x41 | ES6 에서 도입. 0o로 시작 |
문자열 | 'hello' / "world" | |
불리언 | true / false | |
null | null | |
undefined | undefined | |
객체 | {name:Cho , age:33 } |
|
배열 | [1,2,3] | |
함수 | function(){} | |
정규표현식 | /[A-Z]+/g |
# 표현식
1. 표현식이란?
값으로 평가될 수 있는 문.
표현식이 평가되면 새로운 값을 생성하거나 기존값을 참조한다.
let score = 100;
위의 예제는 숫자 리터럴 100
이 런타임 과정에서 값을 생성하므로 리터럴은 그 자체로 표현식
이다.
let score = 50 + 50;
위의 예제는 리터럴과 연산자로 이뤄져있으나, 50 + 50
도 평가되어 숫자 값 100
을 생성하므로 표현식
이다.
let score = 100;
score;
변수 식별자를 참조하면 변수 값으로 평가된다. 식별자 참조는 값을 생성하지는 않지만, 값으로 평가되므로 표현식이다.
이처럼 표현식은 리터럴, 식별자, 연산자, 함수 호출 등의 조합으로 이뤄지며, 즉 값으로 평가될 수 없는 문은 모두 표현식이다.
// 리터럴 표현식
100;
`Hello`;
// 식별자 표현식
sum;
person.name;
arr[1];
// 연산자 표현식
10 + 20;
sum = 10;
sum !== 10;
// 함수/메서드 호출 표현식
square();
person.getName();
# 문
문
은 프로그램을 구성하는 기본 단위
이자 최소 실행 단위
다.문
은 여러 토큰
으로 구성된다. 토큰
이란 문법적인 의미를 가지며 문법적으로 더 이상 나눌 수 없는 코드
의 기본 요소
를 의미한다.

문
을 컴퓨터에 명령을 내린다고 하여 명령문
이라고도 한다.문
은 선언문, 할당문, 조건문, 반복문 등으로 구분지을 수 있다.
- 변수선언문 : 변수가 선언된다.
let x;
- 할당문 : 값이 할당된다.
x = 5;
- 함수선언문 : 함수가 선언된다.
function foo(){}
- 조건문 : 지정한 조건에 따라 실행할 코드 블록이 결정되어 실행된다.
if( x > 1 ){ console.log(x); }
- 반복문 : 특정 코드 블록이 반복 실행된다.
for( let i = 0; i < 2; i++ ) { console.log(i); }
# 세미클론과 세미클론 자동 삽입 기능
세미클론(;)
은 문의 종료를 나타낸다.
자바스크립트 엔진은 세미클론으로 문이 종료한 위치를 파악하고 순차적으로 하나씩 문을 실행한다.
단, if문
과 for문
, 함수
등의 코드 블록 뒤에는 세미클론을 붙이지 않는다.
이러한 코드블록은 언제나 문의 종료를 의미하는 자체 종결성을 갖고 있기 때문이다.
문의 끝에 붙이는 세미클론은 옵션으로, 자바스크립트 엔진이 소스코드를 해석할 때 문의 끝으로 예상되는 지점에 자동으로 세미클론 삽입해주는 기능이 있다.
하지만 개발자가 의도한 대로 동작하기 위해 명시하는 것이 좋다.
# 표현식인 문과 표현식이 아닌 문
표현식은 문의 일부일수도 있고 그 자체로 문이 될 수도 있다.
- 변수 선언문 : 값으로 평가될 수 없으므로 표현식이 아니다.
let x;
- 할당문 : 표현식이면서 완전한 문이기도 하다.
x = 1 + 2;
문에는 표현식인 문과 표현식이 아닌 문이 있다.
표현식인 문은 값으로 평가될 수 있는 문이며, 표현식이 아닌 문은 값으로 평가될 수 없는 문이다.
// 변수 선언문은 표현식이 아닌 문이다.
let x;
// 할당문은 그 자체가 표현식이지만 완전한 문이기도 하다.
x = 100;
// 표현식이 아닌 문은 값처럼 사용될 수 없다.
let foo = let x;
'프론트엔드 > 자바스크립트' 카테고리의 다른 글
[자바스크립트 딥다이브] 6장 데이터 타입 (0) | 2023.01.26 |
---|---|
[자바스크립트 딥다이브] 4장 변수 (0) | 2023.01.25 |
[자바스크립트 딥다이브] 3장 자바스크립트 개발 환경과 실행 방법 (0) | 2023.01.25 |
[자바스크립트 딥다이브] 2장 자바스크립트란? (0) | 2023.01.25 |
[자바스크립트 딥다이브] 1장 프로그래밍 (0) | 2023.01.25 |