【发布时间】:2015-11-15 11:22:58
【问题描述】:
我遇到了 isNaN 函数是 JavaScript 的问题。我有一个变量 trc,我知道它不是数字,但我希望我的代码能够分辨出来。不幸的是,isNaN 并没有检测到它不是数字,但是当我使用警报显示变量的值时,它确实不是数字。
trc = parseInt(getCookie("trc"));
cnn = parseInt(getCookie("cnn"));
klove = parseInt(getCookie("klove"));
if (isNaN(trc)) {
trc = 0;
}
if (getCookie("trc") == undefined) {
trc = 0;
} else {
trc = parseInt(getCookie("trc"));
}
alert(trc);
顺便说一句,我有一个单独的函数 getCookie(),我让自己获取 cookie 的值。
【问题讨论】:
-
parseInt未执行,因为 getCookie 未定义。 -
isNaN()函数的意思是,“参数是NaN的值吗?”不是“参数不是数字”。 -
另请注意,在将
trc设置为 cookie 值之后,无需中间的isNaN()测试即可获得alert()。如果cookie值不是undefined,那么第二个if语句会将trc设置为将cookie值传递给parseInt()的结果,这可能会返回NaN。 -
您必须提供一些样本数据以使其失败。该功能可能正常工作,只是您对输入的期望错误。
-
谢谢,死。你和卡米尔是对的。我通过检查 trc > -1 来修复它,因为我的程序运行方式将始终为 0 或更大。当然,如果 trc 不是数字,它不会小于 0。谢谢大家的帮助!
标签: javascript if-statement integer nan parseint