728x90
1. 값
- 식(표현식)이 평가되어 생성된 결과
- 평가: 식을 해석해서 값을 생성 혹은 참조하는 것
// 10 + 20은 평가되어 숫자 값 30을 생성
10 + 20; // 30
- 모든 값은 data type을 가지며 메모리에 저장된다.
- 현재는 값이 저장되었지만 변수가 없기에 재사용이 불가
2. 리터럴
- 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법
- 리터럴의 종류
- 정수, 부동소수점
- 2진수, 8진수, 16진수
- 문자열
- 불리언
- null, undefined
- 객체, 배열, 함수
- 정규식
3. 표현식
- 값으로 평가될 수 있는 문
- 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조
- 예
- 값을 생성
- 기존 값 참조
// 표현식 : 100
// 100은 js engine에 의해 평가되어 값을 생성하므로 리터럴 자체가 표현식이다.
var score = 100;
// 표현식 : 50 + 50
// 50+50은 리터럴과 연산자로 이뤄져 있고 값으로 100을 생성하므로 표현식이다.
var score = 50 + 50;
// 표현식 : score(변수 식별자)
// 변수 식별자를 참소하면 변수 값으로 평가
score; // 100
- 표현식의 종류
// 리터럴 표현식
10
'hello'
// 연산자 표현식
10 + 20;
sum = 10;
sum !== 10;
// 식별자 표현식 (선언이 이미 존재한다고 가정)
sum;
person.name;
arr[1];
// 함수/method 호출 표현식(선언이 이미 존재한다고 가정)
square();
person.getName();
4. 문
- progrem을 구성하는 기본 단위이자 최소 실행 단위
- 컴퓨터에서 내리는 명령
- 선언문, 조건문, 할당문, 반복문 등등 존재
- 문은 여러 토큰으로 구성
- 토큰 : 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소 의미
- 문, 토큰
var s = 1 + 2;
// 문
// var s = 1 + 2;
// 토큰
// var
// s
// =
// 1
// +
// 2
// ;
- 문 종류
// 변수 선언문
var x;
// 할당문
x = 5;
// 함수 선언문
function foo () {};
// 조건문
if (x > 1) {
console.log(x);
}
// 반복문
for (var i = 0; i < 2; i++) {
console.log(i);
}
- 표현식과 문
- 표현식 : 값이 나오는 것
- 문 : 코드가 실행되는 단위
5. 세미콜론과 세미콜론 자동 삽입 기능
- 세미콜론은 문의 종료를 나타낸다.
- JS engine은 문이 끝났다고 예측되는 위치에 세미콜론을 자동으로 붙여주는 ASI 기능이 있기 때문에 생략 가능은 하다. (권장은 안함)
6. 표현식인 문과 표현식이 아닌 문
// 변수 선언문 : 값으로 평가될 수 없으므로 표현식 아님
var x;
// 표현식이면서 완전한 문
x = 1 + 2;
- 구별하는 간단 정확 방법 : 변수에 할당 해보는 것
// 표현식이 아닌 문
var foo = var x; // error
// 표현식인 문
var foo = x=1+2; // 3