将其它类型转为 Number

有下面方法

全局函数 parseInt(), parseFloat(), 它们的转换规则跟 Number() 很不同。 ES6 出于模块化的考虑,将这两个方法添加到 Number

Number.parseInt === parseInt      // true
Number.parseFloat === parseFloat  // true

Number

Number(value)

一个可选参数,不传入参数时返回 0。 传入参数时,通过 ToNumber 把它转为 Number。

注意,如果以 new 调用 Number,返回一个 number wrapper object

var x = Number()
typeof x

var y = new Number()
typeof y

若 value 是 String,先删掉它头尾的空白。

和 parseInt 的对比

parseInt

parseInt(value, radix?)

首先通过 ToString 把 value 转为 string

radix

radix 默认为 10,不过

parseInt('010') // ES5 为 10, ES3 为 8

如果 radix 是 1 或者大于 36 则返回 NaN。

parseInt('10', 1)   // NaN
parseInt('10', 37)  // NaN

在指定 radix 时,数字字面量前缀可以省略。

parseInt('A', 16)  // 10

parseFloat

parseInt(3.14)   // 3
parseFloat(3.14) // 3.14