0.25+0.25 === 0.5 true
Number采用IEEE 754 64位双精度浮点数编码
若102A4:
parseInt('102A4',10) // 102
Number('102A4') // NaN
“Number 转换的是整个值,而不是部分值;
parseInt 和 parseFloat 只转化第一个无效字符之前的字符串。
一元加操作符也可以实现与 Number 相同的作用,且转换的结果相同。”
var a = new Number('123')
// a: Number {123}
// typeof a: 'object'
var b = Number('123')
// b: 123
// typeof b: 'number'
数字与字符串相加:
https://www.cnblogs.com/onepixel/p/5281796.html
因为 NaN !== NaN
所以 Number(undefined)
值为 NaN,但 Number(undefined)!== NaN
Number.isNaN(Number(undefined))
为true
// 一些奇怪的:
Number([]) === 0
// true
Number('') === 0
// true
Number(null) === 0
// true
Number({}) === 0
// false
Number({})
// NaN
“如果想要知道某个值本身是否为 NaN,可以利用 NaN 不等于自身 这一特性来判断。”
function selfIsNaN(value){
returnvalue !== value
}
且Number.isNaN() 和isNaN()不同,isNaN()判断值转换后是否为NaN(即是否能被 Number() 转换为非NaN值),Number.isNaN()判断值是否为NaN
Number.isNaN('212ssd2')
// false
isNaN('212ssd2')
// true
https://www.cnblogs.com/fsjohnhuang/p/5115672.html
https://blog.csdn.net/u013063153/article/details/52424271
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Number
https://www.cnblogs.com/onepixel/p/5281796.html