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