Codog

关注微信公众号:Codog代码狗

0%

Number和parseInt方法区别

从一道面试题说起: NumberparseInt对于非数值类型参数的输出结果有何区别。

首先对比两个“空”数据:undefinednull, 这两个区别是什么?undefined是声明未定义,null是有值,值为空。

那么在使用NumberparseInt的时候有什么区别呢?

给出答案:

1
2
3
4
5
6
7
8
Number(undefined)
NaN
Number(null)
0
parseInt(undefined)
NaN
parseInt(null)
NaN

这种区别个人感觉可以对比数字和字符串互相转换:

1
2
3
4
5
6
7
8
+undefined
NaN
+null
0
'' + undefined
"undefined"
'' + null
"null"

parseInt的参数是字符串,undefinednull被转为字符串后并不是数字字符串,所以输出NaN。

内部原理可能并不是这样,但是从参数定义来看确实可以解释得通。