자바스크립트(ES6)는 7개의 데이터 타입을 제공한다.
원시 타입과 객체 타입으로 분류할 수 있다.
원시 타입 | 객체 타입 |
---|---|
Number | 객체, 함수, 배열 등 |
String | |
Boolean | |
undefined | |
null | |
Symbol |
2진수, 8진수, 16진수를 표현하기 위한 데이터 타입을 제공하지 않으므로, 이 값들을 참조하면 모두 10진수로 해석된다.
var binary = 0b01000001; // 2진수
var octal = 0o101; // 8진수
var hex = 0x41; // 16진수
console.log(binary); // 65
console.log(octal); // 65
console.log(hex); // 65
console.log(binary === octal) // true
console.log(octal === hex) // true
정수로 표현되는 것도 사실은 실수이므로, 정수로 표시되는 수끼리 나누더라도 실수가 나올 수 있다.
console.log(1 === 1.0) // true
console.log(4 / 2) // 2
console.log(3 / 2) // 1.5
세 가지 특별한 값도 표현할 수 있다.
('')
, 큰따옴표("")
, 백틱(``)
으로 표기var string;
string = '문자열';
string = "문자열";
string = `문자열`;
(``)
을 사용하여 표기var template = `<ul>
<li><a href="#">Home</a></li>
<ul>`;
console.log(template);
/* 출력 결과
<ul>
<li><a href="#">Home</a></li>
</ul>
*/
${ }로 표현식을 감싼다.
이 때 표현식의 평가 결과가 문자열이 아니어도 문자열로 강제 타입 변환되어 삽입된다.
console.log(`1+2=${1+2}`); // 1+2=3
// symbol 값 생성
var key = Symbol('key');
console.log(typeof key); // symbol
// 객체 생성
var obj = {};
// symbol을 프로퍼티 키로 사용
obj[key] = 'value'
console.log(obj[key]); // value
❗ 변수 사용 시 주의사항
- 변수는 꼭 필요한 경우에 한해 제한적으로 사용한다.
- 변수의 유효 범위는 최대한 좁게 만들어 변수의 부작용을 억제해야 한다.
- 전역 변수는 최대한 사용하지 않도록 한다.
- 변수보다는 상수를 사용해 값의 변경을 억제한다.
- 변수 이름은 변수의 목적이나 의미를 파악할 수 있도록 네이밍한다.