考虑以下几点:
parseInt(new Array(), 10); // -> NaN
parseInt(new Array(), 16); // -> NaN
parseInt(new Error(), 10); // -> NaN
parseInt(new Error(), 16); // -> 14
似乎这种行为是错误/错误实例所独有的。谁能提供见解?
最佳答案
基本上,那是因为:
new Error().toString()
产生"Error"
,并且parseInt("Error", 16)
产生14
(因为0xE
是14
并且解析器停止在r
).
另一方面,new Array()
不会触发相同的行为,因为数组对象的 toString()
方法返回数组的内容,由逗号,而不是类名。因此,new Array().toString()
生成空字符串,parseInt()
随后生成 NaN
。
关于javascript - 为什么在 Error 上使用 parseInt 返回 14?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35274144/