系列
JavaScript教程
Number
2018-02-10大约11分钟
JavaScript 的 Number 对象是对值类型数字进行包装的对象,这样数值类型也有一个对应的对象。
创建对象
在 JavaScript 中,数字是一种基本的数据类型。JavaScript 还支持 Number 对象,该对象是原生数值的包装对象。在必要时,JavaScript 会自动地在原始数据和对象之间转换。
可以用构造函数 Number()
明确地创建一个 Number 对象。
const num = new Number(5);
console.log(`num的值:${num}`);
const numFromString = new Number("5");
console.log(`numFromString的值:${numFromString}`);
构造函数 Number()
可以不与运算符 new
一起使用,而直接作为转化函数来使用。以这种方式调用 Number()
时,它会把自己的参数转化成一个数字,然后返回转换后的原始数值(或 NaN
)。
const numFromString = Number("5");
console.log(`numFromString的值:${numFromString}`);
const nanNumber = Number("aaa");
console.log(`nanNumber的值:${nanNumber}`);
比较对象
比较对象是否是同样一个对象,可以用==
运算符:
const num1 = new Number(5);
const num2 = new Number(5);
// num1和num2是两个不同的对象
console.log(`num1和num2相等:${num1 == num2}`);
当比较数值和对象是否相等的时候,对象会自动转换成值类型做比较:
console.log(new Number(5) == 5); // true
console.log(new Number(5) == 6); // false
需要注意的是,如果想避免比较的时候做类型转换,就应该用恒等运算符===
来比较:
console.log(new Number(5) === 5); // false
更多属性和方法
Number有更多的属性
属性 | 解释 |
---|---|
Number.EPSILON | 大于1的最小浮点数和1的差,或者两个能表示的最小数之间的距离 |
Number.MAX_SAFE_INTEGER | JavaScript中最大的安全整数 (2^53 - 1) |
Number.MAX_VALUE | JavaScript中最大的能表示的正数 |
Number.MIN_SAFE_INTEGER | JavaScript中最小的安全整数 -(2^53 - 1) |
Number.MIN_VALUE | JavaScript中最小能表示的正数,接近0,但不是0 |
Number.NaN | 特殊的‘Not a Number’值 |
Number.NEGATIVE_INFINITY | 特殊的负无穷值,超出表示范围的时候返回此值 |
Number.POSITIVE_INFINITY | 特殊的正无穷值,超出表示范围的时候返回此值 |
Number.prototype | 允许在Number对象上添加额外的属性 |
更多的方法:
方法 | 解释 |
---|---|
Number.isNaN() | 确定传递的值是否是 NaN |
Number.isFinite() | 确定传递的值类型及本身是否是有限数 |
Number.isInteger() | 确定传递的值类型是“number”,且是整数 |
Number.isSafeInteger() | 确定传递的值是否为安全整数 ( -(2^53 - 1) 至 2^53 - 1之间) |
Number.parseFloat() | 和全局对象 parseFloat() 一样 |
Number.parseInt() | 和全局对象 parseInt() 一样 |