这没什么大不了的,只是出于好奇而提出的一个问题。 JSLINT.com中的以下脚本给出了一个奇怪的“意外”错误。我的脚本可以运行,但是我仍然想知道是否有人可以解释该错误。

var hashVar = parseInt(location.hash.replace('#',''), 10);
if(hashVar-0 === hashVar){L();}


错误:第3行字符4处出现问题:意外的'hashVar'。

周末愉快,乌里克

最佳答案

您可能想要这样:

var hashVar = parseInt(location.hash.replace('#', ''), 10);
if ( !isNaN(hashVar) ) { L(); }


此代码具有与原始代码相同的功能。



顺便说一句,这:

if ( !isNaN(hashVar) ) { L(); }

可以进一步简化为:

isNaN(hashVar) || L();

;-)



说明:

parseInt的返回值可以是:

a)整数数值
b)NaN

因此,如果要测试返回值是否为整数,请使用isNaN()

关于javascript - 隐式强制转换/数字检查会产生“意外的X” JSLint错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4978379/

10-13 08:57