【发布时间】:2014-04-10 00:02:02
【问题描述】:
set("mean",total/weight);
if (mean = "NaN") {
alert("Error! Please use NUMBERS only");
}
我希望警报仅在结果为 NaN 时运行,计算在没有 if 语句的情况下工作,所以我知道这不是问题。
【问题讨论】:
-
使用比较运算符
==,而不是=
标签: javascript
set("mean",total/weight);
if (mean = "NaN") {
alert("Error! Please use NUMBERS only");
}
我希望警报仅在结果为 NaN 时运行,计算在没有 if 语句的情况下工作,所以我知道这不是问题。
【问题讨论】:
==,而不是=
标签: javascript
改变
if (mean = "NaN") {
到
if (mean == "NaN") {
在第一个中你将一个值设置为一个 var,在第二个中你进行逻辑比较
【讨论】:
使用isNaN 函数进行比较:
if(isNaN(mean)){
alert("Error! Please use NUMBERS only");
}
【讨论】:
您将字符串 "NaN" 分配给 mean,而不是比较。
你也不能使用mean === NaN来检查,因为与NaN比较总是返回false。
要检查是否是NaN,你必须使用isNaN函数。
if (isNaN(mean)) {
alert("Error! Please use NUMBERS only");
}
【讨论】:
在 JavaScript 中,mean = "NaN",单个等于 设置值 mean。然后 if 语句将检查值“NaN”的“真实性”,该值将评估为真。也就是说,您的if(mean = "NaN") 将首先将mean 设置为文字字符串"NaN",然后测试if("NaN")。
使用 双等号 (mean == "NaN") 进行相等比较,使用 三等号 (mean === "NaN") 进行类型和等式比较。
但是,mean == "NaN" 将始终返回 false,因为 NaN is not the literal string "NaN" but a special value。请改用isNaN(mean)。
【讨论】: