2014-03-07 117 views
-2
set("mean",total/weight); 
if (mean = "NaN") { 
    alert("Error! Please use NUMBERS only"); 
} 

我想警报只在结果是NaN时运行,计算没有if语句,所以我知道这不是问题。我不能让警报正常工作

+1

使用比较运算符'==',而不是'=' –

回答

0

变化

if (mean = "NaN") { 

if (mean == "NaN") { 

在第一ü将值设置到一个变种,在第二U做一个逻辑比较

3

使用isNaN功能比较:

if(isNaN(mean)){ 
    alert("Error! Please use NUMBERS only"); 
} 
+0

计算运行,但现在无论什么 – user3373223

+0

都不知道,会使用一种方法来解决这个问题。谢谢 – user3373223

0

您正在拼写字符串"NaN"mean,而不是比较。

你也不能用mean === NaN来检查,因为与NaN比较总是返回false。

要检查是否为NaN,您必须使用isNaN函数。

if (isNaN(mean)) { 
    alert("Error! Please use NUMBERS only"); 
} 
1

在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)