从一道面试题说起: Number
和parseInt
对于非数值类型参数的输出结果有何区别。
首先对比两个“空”数据:undefined
和null
, 这两个区别是什么?undefined
是声明未定义,null
是有值,值为空。
那么在使用Number
和parseInt
的时候有什么区别呢?
给出答案:
1 | Number(undefined) |
这种区别个人感觉可以对比数字和字符串互相转换:
1 | +undefined |
parseInt
的参数是字符串,undefined
和null
被转为字符串后并不是数字字符串,所以输出NaN。
内部原理可能并不是这样,但是从参数定义来看确实可以解释得通。