4.3(39p): var의 단점

ES6에서 let, const 키워드가 도입되기 이전까지 var은 변수를 선언할 수 있는 유일한 키워드였다.

하지만, var 키워드의 단점이 있었는데, 대표적으로 var 키워드는 블록 레벨 스코프가 아닌 함수 레벨 스코프를 지원한다는 점이다. 이로 인해, 의도치 않게 전역 변수가 선언되어 오류가 생기기도 한다.

4.4(43p): 호이스팅

변수 선언은 런타임(소스코드가 한 줄씩 순차적으로 실행되는 시점)이 아닌, 그 이전 단계에서 미리 실행된다.

이처럼 변수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징을 호이스팅이라고 한다.

5.3(52p): 표현식

표현식은 값으로 평가될 수 있는 문이다.

→표현식인 문은 변수에 할당하는 과정을 통해 표현식이 아닌 문과 구분할 수 있다.

x=100;
var foo=x=100;
//표현식(x=100)은 변수에 할당이 가능하다.

6.3(62p): 템플릿 리터럴

백틱(``)을 사용해 표현하는데, 주요 특징으로는 멀티라인 문자열, 표현식 삽입, 태그드 텝플릿 등을 제공한다는 것이다.

//멀티라인 문자열
var test=`hello
					js`
/*->'hello
		 js'
*/

//표현식 삽입
var first="Oseung";
var last="Kwon";
console.log(`My name is ${first} ${last}.`);
//->"My name is Oseung Kwon"

6.7(67p): 심벌 타입

심벌 타입은 변경 불가능한 원시 타입의 값으로, Symbol 함수를 호출해 생성한다.

따라서, 심벌 타입은 이름이 충돌할 위험이 없는 유일무일한 값이다.