Number对象是javascript的基本对象之一,它继承自Object
//使用new Number()产生的数值,===比较时会有意外结果
var num1 = new Number(1);
var num2 = Number(1);
var num3 = Number(1);
num1 == num2; //true
num1 === num2; //false
num2 === num3; //true
num1 == 1; //true
num1 === 1; //false
num2 == 1; //true
num2 === 1; //true
警告:这个函数不稳定,比如(1.45).toFixed(1)=1.4 (1.46).toFixed(1)=1.5 如果需要四舍五入请用Math.round
toExponential(num) 转化为指数表现形式,num是0~20的值
(1000).toExponential(2)=1.00e+3
toPrecision(num) num是1~21的数值,对象的值超出指定位数时将其转换为指数计数法。和toExponential不同,只有在超过制定位数后才转变为指数
(1000).toPrecision(3)=1.00e+3
(1000). toPrecision(4)=1000
valueOf() 返回对象的基本数值
isSafeInteger() 判断是否是安全数值,是返回true
parsetInt() 和全局的parsetInt 一样 转化为整数'parseInt('1x')=1
parseFloat() 和全局的parseFloat 一样 转化为浮点数parseFloat('1.1x')=1.1
isFinite() 是否非无穷
var n1 = Number.isFinite(15); // true
var n2 = Number.isFinite(0.8); // true
var n3 = Number.isFinite(NaN); // false
var n4 = Number.isFinite(Infinity); // false
var n5 = Number.isFinite(-Infinity); // false
var n6 = Number.isFinite('foo'); // false
var n7 = Number.isFinite('15'); // false
var n8 = Number.isFinite(true); // false
isNaN() 检查一个值是否为NaN
var f1 = Number.isNaN(NaN) // true
var f2 = Number.isNaN(15) // false
var f3 = Number.isNaN('15') // false
var f4 = Number.isNaN(true) // false
var f5 = Number.isNaN(9/NaN) // true
var f6 = Number.isNaN('true'/0) // true
var f7 = Number.isNaN('true'/'true') // true
它们与传统的全局方法isFinite()和isNaN()的区别在于,传统方法先调用Number()将非数值的值转为数值,再进行判断,而这两个新方法只对数值有效,非数值一律返回false;
isFinite(25) // true
isFinite("25") // true
Number.isFinite(25) // true
Number.isFinite("25") // false
isNaN(NaN) // true
isNaN("NaN") // true
Number.isNaN(NaN) // true
Number.isNaN("NaN") // false
新增了二进制和八进制写法,前缀为0b
和0o
0b111 === 7 // true;
0o767 ===503 // true;