
// 숫자 리터럴 3이자 리터럴 표현식
3
// 리터럴 표현식
10
'hello'
// 식별자 표현식(선언이 이미 존재한다고 가정)
sum
person.name
arr[1]
// 연산자 표현식
10 + 20
sum = 10
sum !== 10
// 함수/메서드 호출 표현식(선언이 이미 존재한다고 가정)
square()
person.getName()// 변수 선언문
var x;
// 할당문
x = 5;
// 함수 선언문
function foo () {}
// 조건문
if (x > 1) { console.log(x); }
// 반복문
for (var i = 0; i < 2; i++) { console.log(i); }| 구분 | 데이터 타입 | 설명 |
|---|---|---|
| 원시 타입 | number | 숫자, 정수와 실수 구분 없이 하나의 숫자 타입만 존재 |
| string | 문자열 | |
| boolean | 논리적 참(true)과 거짓(false) | |
| undefined | var 키워드로 선언된 변수에 암묵적으로 할당되는 값 | |
| null | 값이 없다는 것을 의도적으로 명시할 때 사용하는 값 | |
| symbol | ES6에서 추가된 7번째 타입 | |
| 객체 타입 | 객체, 함수, 배열 등 |
// 숫자 타입은 모두 실수로 처리된다.
console.log(1 === 1.0); // true
// 정수만을 위한 타입이 없고 모든 수를 실수로 처리한다.
// 그러므로 정수로 표시된다 해도 사실은 실수라는 것을 의미한다.
console.log(4 / 2); // 2
console.log(3 / 2); // 1.5Infinity : 양의 무한대
-Infinity : 음의 무한대
NaN : 산술 연산 불가(not-a-number)
// 숫자 타입의 세 가지 특별한 값
console.log(10 / 0); // Infinity
console.log(10 / -0); // -Infinity
console.log(1 * 'String'); // NaN
// 자바스크립트는 대소문자를 구별하므로 NaN을 NAN, Nan, nan과 같이 표현하면 에러가 발생하므로 주의
// 1.이스케이프 시퀀스(escape sequence) 사용시
var template = '<ul>\n\t<li><a href="#">Home</a></li>\n</ul>';
console.log(template);
// 2.템플릿 리터럴(template literal) 사용시
var template = `<ul>
<li><a href="#">Home</a></li>
</ul>`;
console.log(template);
// 1,2 출력 결과
<ul>
<li><a href="#">Home</a></li>
</ul>var first = 'Neighbor';
var last = 'Kim';
// ES5:문자열 연결 (싱글쿼트)
console.log('My name is ' + first + ' ' + last + '.'); // My name is Neighbor Kim.
// ES6:표현식 삽입 (백틱)
console.log(`My name is ${first} ${last}.`); // My name is Neighbor Kim.표현식을 삽입하려면 ${ }으로 표현식을 감싼다. 이때 표현식의 평가 결과가 문자열이 아니더라도 문자열로 타입이 강제로 변환되어 삽입된다.
console.log(`1 + 2 = ${1 + 2}`); // 1 + 2 = 3
console.log('1 + 2 = ${1 + 2}'); // 1 + 2 = ${1 + 2}
템플릿 리터럴이 아닌 일반 문자열에서의 표현식 삽입은 문자열로 취급된다.