자바스크립트의 모든 값은 데이터 타입을 갖는다.

자바스크립트(ES6)는 7개의 데이터 타입을 제공하며, 7개의 데이터 타입은 원시 타입(primitive type)과 객체 타입(object/reference type)으로 분류된다.

숫자 타입

다른 언어들은 int, float, double, long 등 다양한 숫자 타입을 가지나, 자바스크립트는 단 하나의 숫자타입만이 존재한다.

ECMA 사양에 따르면 배정밀도 64비트 부동소수점 형식을 따른다.

즉, 모든 수를 실수로 처리한다.

값이 클 수록 그 안에서의 정밀도가 떨어지는 문제가 있기도 한다.

두 값에는 차이가 있으나, 작은 차이라고 판단하여 동일한 결과를 보여준다.

var integer = 10; // 정수
var double = 10.12; // 실수
var negative = -20; // 음의 정수

console.log(typeof(integer)); // number
console.log(typeof(double)); // number
console.log(typeof(negative)); // number

정수, 실수, 음의 정수 모두 number 타입을 가진다.

var binary = 0b01000001;
var octal = 0o101;
var hex = 0x41;

console.log(binary); // 65
console.log(octal); // 65
console.log(hex); // 65
console.log(binary === octal); // true
console.log(octal === hex); // true

값과 타입 모두 동일하기 때문에 true가 된다.