JS标准库之Number对象
概述
Number
对象是数值对应的包装对象,可以作为构造函数使用,也可以作为工具函数使用。
作为构造函数时,它用于生成值为数值的对象。
1 2 |
var n = new Number(1); typeof n // 'object' |
上面代码中,Number
对象作为构造函数使用,返回一个值为1
的对象。
作为工具函数时,它可以将任何类型的值转为数值。
1 |
Number(true) // 1 |
静态属性
Number
对象拥有以下一些静态属性
Number.POSITIVE_INFINITY
:正的无限,指向Infinity
。Number.NEGATIVE_INFINITY
:负的无限,指向-Infinity
。Number.NaN
:表示非数值,指向NaN
。Number.MIN_VALUE
:表示最小的正数(即最接近0的正数,在64位浮点数体系中为5e-324
),相应的,最接近0的负数为-Number.MIN_VALUE
。Number.MAX_SAFE_INTEGER
:表示能够精确表示的最大整数,即9007199254740991
。Number.MIN_SAFE_INTEGER
:表示能够精确表示的最小整数,即-9007199254740991
。
实例方法
Number
对象有4个实例方法,都跟将数值转换成指定格式有关。
Number.prototype.toString()
Number
对象部署了自己的toString
方法,用来将一个数值转为字符串形式
1 |
(10).toString(); // "string" |
toString()
方法可以接受一个参数,表示输出的进制。如果省略不写,则默认为十进制,再输出字符串。否则就根据参数指定的进制,将一个数字转为某个进制的字符串。
1 2 3 |
(10).toString(2) // "1010" (10).toString(8) // "12" (10).toString(16) // "a" |
上面代码中,10
一定要放在括号里,这样表明后面的点表示调用对象属性。如果不加括号,这个点会被 JavaScript 引擎解释称小数点,从而报错。
Number.prototype.toFixed()
toFixed
方法先将一个数转为指定位数的小数,然后返回这个小数对应的字符串。
1 2 |
(10).toFixed(2) // "10.00" 10.005.toFixed(2) // "10.01" |
上面代码中,10
和10.005
先转成2位小数,然后转成字符串。其中10
必须放在括号里,否则后面的点会被处理成小数点。
toFixed
方法的参数为小数位数,有效范围为 0 到 100,超出这个范围将抛出 RangeError 错误。
Number.prototype.toLocaleString()
接受一个地区码作为参数,返回一个字符串,表示当前数字在该地区的书写方式。
第二个参数为参数配置对象(可选),用来定制指定用途的返回字符串。
1 2 |
let num2 = 0.88; let res = num2.toLocaleString('zh-CN', { style: 'percent' }); // "88%" |