console.log(1 === 1.0); // true
console.log(4 / 2); // 2
console.log(3 / 2); // 1.5
console.log(10 / 0); // Infinity
console.log(10 / -0); // -Infinity
console.log(1 / 'String'); // NaN
var string;
string = '작은따옴표로 감싼 문자열 내의 "큰따옴표"는 문자열로 인식됨';
string = "큰따옴표로 감싼 문자열 내의 '작은따옴표'는 문자열로 인식됨";
: 일반 문자열 내에서는 줄바꿈(개행)이 허용되지 않기 때문에 백슬래시()로 시작하는 이스케이프 시퀀스를 사용해야 함
var template = `<ul>\n\t<li><a href="#">Home</a></li>\n</ul>`;
console.log(template);
// 결과
<ul>
<li><a href="#">Home</a></li>
</ul>
템플릿 리터럴 내에서는 이스케이프 시퀀스를 사용하지 않고도 줄바꿈이 허용되며, 모든 공백도 있는 그대로 적용됨
문자열은 문자열 연산자 +를 사용해 연결이 가능하지만, 템플릿 리터럴 내에서는 표현식 삽입을 통해 간단한 문자열 삽입이 가능
var first = 'Ung-mo';
var last = 'Lee';
// 문자열 연결
console.log('My name is ' + first + ' ' + last + '.');
// 표현식 삽입
console.log(`My name is ${first} ${last}.`);
: 논리적 참, 거짓을 나타내는 true, false
var foo;
console.log(foo); // undefined
: 변수에 값이 없다는 것을 의도적으로 명시할 때 사용
: 변경 불가능한 원시 타입의 값
// 심벌 값 생성
var key = Symbol('key');
console.log(typeof key); // symbol
// 객체 생성
var obj;
// 이름이 충돌할 위험이 없는 유일무이한 값인 심벌을 프로퍼티 키로 사용
obj[key] = 'value';
console.log(obj[key]); // value;