Skip to content

数值

对象转数值的规则:

  1. 调用对象的valueOf方法得到原始值,如果结果是原始数据类型,则直接转换为数值
  2. 如果第1步中返回的仍不是原始数据类型,则继续调用toString方法并转换数值
  3. 如果既没有valueOf方法也没有toString方法,则抛出错误

其他类型转换数值的规则

原始类型转换规则举例
stringNumber.parseInt/Number.parseFloat'123' -> 123
booleantrue为1,false为0-
undefinedNaN-
null0-
symbol转换报错-

parseFloat 规则

isNaN与Number.isNaN

Number.isNaNisNaN的健壮版本,它会判断传入参数是否是number类型,如果不是,直接返回false。

isNaN会尝试将传入参数转成number,如果失败了,则返回true,其内部原理可以描述为:

js
isNaN('123x')

// 1. Number('123x') => NaN
// 2. Number.isNaN(NaN) => true