javascript
中经常会看到在变量前面有个加号 +
,它有什么用处呢?其实很简单,就是把变量转换成 number 类型
(另外,变量 - 0 也是把变量的值转为数值的一种写法)。话不多说,我们先看下面的几个例子,以便帮助大家直观的理解:
// null:返回 0
console.info(+null) // => 0
// undefined:返回 NaN
console.info(+undefined) // => NaN
// 获取当前的时间戳,相当于`new Date().getTime()`
console.info(+new Date())
// 布尔型转换为整型:true 返回 1,false 返回 0
console.info(+true) // => 1
console.info(+false) // => 0
// 空字符串:返回0
console.info(+'') // => 0
// 忽略前面的 0
console.info(+'010') // => 10
// 16进制转换成 10进制
console.info(+'0x3E8') // => 1000
// 科学计数法自动解析
console.info(+'1e3') // => 1000
console.info(+'1e-3') // => 0.001
// 无法解析的格式:返回 null
console.info(+'1,000') // => NaN
到这里,大家应该都理解了吧,其实就是相当于
Number(value)
会将其按照Number函数的规则转换为数值或者NaN,规则大概如下:
- Boolean:true返回1,false返回0
- 数据值,直接返回
- null,返回0
- undefined,返回NaN
- 对于字符串,将其转换为十进制数值,会忽略前面的0(16进制除外),空字符串返回0,浮点数会返回浮点数值。其他格式字符串(无论是否数字开头,返回NaN,字符串中好几个小数点,返回NaN)