这没什么大不了的,只是出于好奇而提出的一个问题。 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/