Javascript 为什么在错误时使用parseInt返回14?
考虑以下几点:Javascript 为什么在错误时使用parseInt返回14?,javascript,parseint,Javascript,Parseint,考虑以下几点: parseInt(new Array(), 10); // -> NaN parseInt(new Array(), 16); // -> NaN parseInt(new Error(), 10); // -> NaN parseInt(new Error(), 16); // -> 14 这种行为似乎是错误/错误实例所特有的。有人能提供见解吗?基本上,这是因为: newerror().toString()产生“Error”,并且 parseInt
parseInt(new Array(), 10); // -> NaN
parseInt(new Array(), 16); // -> NaN
parseInt(new Error(), 10); // -> NaN
parseInt(new Error(), 16); // -> 14
这种行为似乎是错误/错误实例所特有的。有人能提供见解吗?基本上,这是因为:
产生newerror().toString()
,并且“Error”
产生parseInt(“Error”,16)
(因为14
是0xE
,解析器停在14
)r
另一方面,
new Array()
不会触发相同的行为,因为数组对象的toString()
方法返回数组的内容,以逗号分隔,而不是类名。因此,new Array().toString()
产生空字符串,parseInt()
随后产生NaN
首先,为什么在出错时使用parseInt?parseInt([“E”],16)
也同样有效。类似地,parseInt(false,16)
产生250(十六进制FA)。啊,这很有道理。非常感谢。