값 = 표현식이 평가되어 생성된 결과를 말함
변수 = 하나의 값을 저장하기 위해 확보된 메모리 공간 = 그 메모리 공간을 식별하기 위해 붙인 이름
사람이 쓰는 문자 생긴 것 그대로 사용하여 값을 생성하는 하나의 표기법
-> JS 엔진은 런타임에 리터럴을 평가하여 값을 생성
# 정수리터럴
100
# 2진수 리터럴
0b0100
# 객체 리터럴
{name : 'Lee' ,address : 'Jeju'}
# 배열 리터럴
[1,2,3]
# 함수 리터럴
function(){}
# 정규표현식 리터럴
/[A-Z] + /g
값으로 평가될 수 있는 문
var score = 100;
score;
두번째 줄의 변수를 참조하는 문 역시 100의 값으로 평가될 수 있기에 표현식!
=> 값이 위치할 수 있는 자리엔 표현식도 위치가능하다
프로그램을 구성하는 기본 단위이자 최소 실행 단위
세미콜론 -> 문의 종료
{}로 묶은 코드 블럭 뒤엔 붙이지 않음세미콜론 자동 삽입 기능 -> ASI,편리하긴 한데 개발자에게 혼선을 줄 수 있음
function foo () {
return
{}
}
# 원래 의도 : return {};
# ASI : return; {};
ASI 에 의해 빈 객체를 반환하지 않고 undefined 를 반환하게 됨
구별방법은 간단하게 변수에 할당이 가능한지 아닌지로 판별 가능
var y = var x # SyntaxError
이렇게 변수 선언문은 표현식이 아님.
단, 할당문은 표현식이 맞음(할당한 변수의 값으로 평가될 수 있기 때문)