1 JavaScript 只有一种数值类型。书写数值时带不带小数点均可。
2. 超大或超小的数可通过科学计数法来写
var x = 123e5; // 12300000
var y = 123e-5; // 0.00123
3 JavaScript 数值始终是 64 位的浮点数
4. 整数(不使用指数或科学计数法)会被精确到 15 位。
var x = 999999999999999; // x 将是 999999999999999
var y = 9999999999999999; // y 将是 10000000000000000
5. 小数的最大数是 17 位,但是浮点的算数并不总是 100% 精准
var x = 0.2 + 0.1; // x 将是 0.30000000000000004
var x = (0.2 * 10 + 0.1 * 10) / 10; // x 将是 0.3
6.NaN 属于 JavaScript 保留词,指示某个数不是合法数。您可使用全局 JavaScript 函数 isNaN() 来确定某个值是否是数
var x = 100 / "Apple";
isNaN(x); // 返回 true,因为 x 不是数
typeof NaN; // 返回 "number"
7.Infinity (或 -Infinity)是 JavaScript 在计算数时超出最大可能数范围时返回的值。(无穷大)
typeof Infinity; // 返回 "number"
8.JavaScript 会把前缀为 0x 的数值常量解释为十六进制。
绝不要用前导零写数字(比如 07)。一些 JavaScript 版本会把带有前导零的数解释为八进制。。
9. 使用 toString() 方法把数输出为十六进制、八进制或二进制。
var myNumber = 128;
myNumber.toString(16); // 返回 80
myNumber.toString(8); // 返回 200
myNumber.toString(2); // 返回 10000000
10 也可以通过关键词 new 定义为对象:var y = new Number(123)
请不要创建数值对象。这样会拖慢执行速度。
new 关键词使代码复杂化,并产生某些无法预料的结果:
当使用 == 相等运算符时,相等的数看上去相等:
var x = 500;
var y = new Number(500);
// (x == y) 为 true,因为 x 和 y 有相等的值
// (x === y) 为 false,因为 x 和 y 的类型不同
甚至
var x = new Number(500);
var y = new Number(500);
// (x == y) 为 false,因为对象无法比较
备注:JavaScript 对象无法进行比较。
11. toString() 以字符串返回数值。所有数字方法可用于任意类型的数字(字面量、变量或表达式)
12. toExponential() 返回字符串值,它包含已被四舍五入并使用指数计数法的数字
13. toFixed() 返回字符串值,它包含了指定位数小数的数字
14. toPrecision() 返回字符串值,它包含了指定长度的数字
15. valueOf() 以数值返回数值
16. 三种 JavaScript 方法可用于将变量转换为数字。这些方法并非数字方法,而是全局 JavaScript 方法
·Number() 方法
x = true;
Number(x); // 返回 1
x = false;
Number(x); // 返回 0
x = new Date();
Number(x); // 返回 1404568027739
x = "10"
Number(x); // 返回 10
x = "10 20"
Number(x); // 返回 NaN
还可以转化日期为数字
·parseInt() 方法
解析一段字符串并返回数值。允许空格。只返回首个数字整型。
parseInt("10"); // 返回 10
parseInt("10.33"); // 返回 10
parseInt("10 20 30"); // 返回 10
parseInt("10 years"); // 返回 10
parseInt("years 10"); // 返回 NaN
·parseFloat() 方法
解析一段字符串并返回数值。允许空格。只返回首个数字浮点型。
17.数值属性
var x = Number.MAX_VALUE;// 1.7976931348623157e+308
var x = Number.MIN_VALUE;// 5e-324
var x = Number.POSITIVE_INFINITY; //Infinity
var x = Number.NEGATIVE_INFINITY; //-Infinity
数字属性属于名为 number 的 JavaScript 数字对象包装器。
使用 myNumber.MAX_VALUE,其中 myNumber 是变量、表达式或值,将返回 undefined:
var x = 6;
var y = x.MAX_VALUE; // y 成为 undefined
var y = Number.MAX_VALUE;// 1.7976931348623157e+308