语法
const a = new Number(123) // Number 对象
const b = Number(123) // 数值
/**
* 注意!!!
*/
console.log(a, b) // [Number: 123] 123
console.log(a === 123, b === 123) // false true
console.log(typeof(a), typeof(b)) // object number
console.log(a instanceof Number, b instanceof Number) // true false
Number类属性
.MAX_SAFE_INTEGER
- JavaScript 中最大的安全整数 (2^53 - 1),如果大于这个值就会失去精度。
.MIN_SAFE_INTEGER
JavaScript 中最小的安全整数 (-(2^53 - 1)),如果小于于这个值就会失去精度。.
.NaN
- 特殊的“非数字”值,返回NaN。
.EPSILON
- 两个可表示(representable)数之间的最小间隔。
.prototype
- Number 对象上允许的额外属性。
.MAX_VALUE
- 能表示的最大正数。最小的负数是 -MAX_VALUE。
.MIN_VALUE
- 能表示的最小正数即最接近 0 的正数 (实际上不会变成 0)。最大的负数是 -MIN_VALUE。
.NEGATIVE_INFINITY
- 特殊的负无穷大值,在溢出时返回该值。
.POSITIVE_INFINITY
- 特殊的正无穷大值,在溢出时返回该值。
Number类方法
.isNaN()
- 确定传递的值是否是 NaN,返回boolean。
.isFinite()
- 确定传递的值类型及本身是否是有限数,返回boolean。
.isInteger()
- 确定传递的值类型是“Number”,且是整数,返回boolean。
.isSafeInteger()
- 确定传递的值是否为安全整数 ( -(2^53 - 1) 至 2^53 - 1)之间,返回boolean。
.parseFloat()
- 和全局对象 parseFloat() 一样,返回浮点数。
.parseInt()
- 和全局对象 parseInt() 一样,返回整型。
Number实例方法
.toExponential([value])
- 将数字转为科学计数法,value可填可不填,value表示科学计数法之后保留多少位数,value可为数字字符串和数字。
.toFixed([value])
- 保留多少位小数,value可填可不填,value表示保留多少位数,value可为数字字符串和数字。
.toString([radix])
- 将数字转化为radix进制的字符串,radix默认为10。
.toPrecision([value])
- 方法以指定的精度返回该数值对象的字符串表示,可以返回科学计数法的数字,没有写value则相当于运行.toString()方法。
.toLocaleString()
.valueOf()
- 方法返回一个被 Number 对象包装的原始值。
const a = new Number(123) // Number 对象
const b = Number(123) // 数值
console.log(b === a.valueOf()) // true
注意点
console.log(Number(undefined), parseInt(undefined)) // NaN NaN
console.log(Number(null), parseInt(null)) // 0 NaN
console.log(Number("1t"), parseInt("1t")) // NaN 1
console.log(Number(" "), parseInt(" ")) // 0 NaN
console.log(Number(Object), parseInt(Object)) // NaN NaN
参考文献
- Number.MDN