先考考你这几个题目
1 | Number('前端精髓') |
感觉还可以吗?
如果你理解Number函数的转换规则,那么应该很容易的,但是里面的转换规则还是挺多的,一不留神就出错,那就详细分析一下。
如果是把布尔值传递给Number函数,将会得到0和1。
1 | Number(false) |
如果是把null和undefined传递给Number函数,将会得到0和NaN。
1 | Number(null) |
如果是把字符串传递给Number函数,那肯定是NaN。
1 | Number('前端精髓') |
如果是对象{}传递给Number函数,那肯定是NaN了。
1 | let obj = {} |
对象的转换规则其实是这样的:会调用对象的toString方法得到结果,然后再传入Number方法中。
对于数组的转换规则呢,你要先知道数组调用toString会发生什么情况?
1 | [].toString() |
然后我们再调用Number方法就可以了
1 | Number('') |