Skip to content

Latest commit

 

History

History
53 lines (35 loc) · 2.11 KB

Number类型.md

File metadata and controls

53 lines (35 loc) · 2.11 KB

Number 类型

首先输出看有哪些方法;

console.log(new Number())

方法如下:

toExponential
toFixed
toLocaleString
toPrecision
toString
valueOf

Number 类型也重写了 valueOf() 、 toLocaleString() 和 toString()方法。重写后的 valueOf() 方法返回对象表示的基本类型的数值,另外两个方法则返回字符串形式的数值;

为 toString() 方法传递一个表示基数的参数,告诉它返回几进制数值的字符串形式,

var num = 10;
console.log(num.toString()); //"10"
console.log(num.toString(2)); //"1010"
console.log(num.toString(8)); //"12"
console.log(num.toString(10)); //"10"
console.log(num.toString(16)); //"a"

toFixed 保留几位小数

按照指定的小数位返回数值的字符串表示

var num1 = 10,
    num2=20.1231231231232;
console.log(num1.toFixed(2)); //"10.00"
console.log(num2.toFixed(2)); //"20.12"

能够自动舍入的特性,使得 toFixed() 方法很适合处理货币值。但需要注意的是,不同浏览器给这个方法设定的舍入规则可能会有所不同。在给 toFixed() 传入 0 的情况下,IE8 及之前版本不能正确舍入范围在{(0.94,0.5],[0.5,0.94)}之间的值。对于这个范围内的值,IE 会返回 0,而不是1 或 1;其他浏览器都能返回正确的值。IE9 修复了这个问题。

toFixed() 方法可以表示带有 0 到 20 个小数位的数值。但这只是标准实现的范围,有些浏览器也可能支持更多位数。

不建议直接实例化 Number 类型

var numberObject = new Number(10);
var numberValue = 10;
console.log(typeof numberObject); //"object"
console.log(typeof numberValue); //"number"
console.log(numberObject instanceof Number); //true
console.log(numberValue instanceof Number); //false

在使用 typeof 操作符测试基本类型数值时,始终会返回 "number" ,而在测试 Number 对象时,则会返回 "object" 。类似地, Number 对象是 Number 类型的实例,而基本类型的数值则不是。