Javascript 공부를 하면서, 가장 신기했던 부분이다. Javascript에서는 실수, 정수와 같은 타입을 구분하여 (int, long, float, double)과 같은 다양한 숫자 타입을 설정하지 않는다는 것이다. 독특하게도, 하나의 숫자 타입만 존재한다.
ECMAScript 사양에 따르면, 숫자 타입의 값은 배정밀도 64비트 부동소수점 형식을 따르며, 즉 모든 실수를 실수로 처리한다. 정수만 표현하기 위한 데이터 타입이 별도로 존재하지 않는다.
var integer = 10 //정수
var double = 10.12//실수
var nagative = -20 //음의 정수
정수, 실수, 2진수, 8진수, 16진수 리터럴은 모두 메모리에 배정밀도 64비트 부동소수점 형식의 2진수로 저장된다. 그런데 이 친구들을 모두 단순히 실수 처리를 한다. 이것을 꼭 알아두어야 한다!
자바스크립트는 그리고.. 골치 아픈 일이 하나 사라졌다. ㅎㅎ 2진수, 8진수, 16진수를 표현하기 위한 데이터 타입을 제공하지 않는다!! 모두 10진수로 해석되기 때문~~ :) 이거는 정말 좋은 일인 거 같다. (복잡하지 않기 때문) ㅎㅎ
그리고 자바스크립트의 숫자 타입은 정수만을 위한 타입이 없고, 모두 실수로 처리한다. 그래서 정수로 표시되는 것처럼 보여도 사실은 실수라는 것!!
정수로 표시되는 수끼리 나누더라도, 실수가 나올 수 있다.
console.log(1 === 1.0); //true값을 반환한다.