2017-10-16 119 views
-10

下面的代码总是返回600,我不知道为什么。
任何帮助,将不胜感激。从if函数返回变量不会返回我很好的值

<p id="demo"></p> 
var freq = "0"; 

if (freq = "0") { 
    var time = 300; 
} else if (freq = "1") { 
    var time = 600; 
} 

document.getElementById("demo").innerHTML = time; 
+1

因为'FREQ = “1”'是分配,而不是比较。你的意思是'freq ==“1”'? – jonrsharpe

+1

'='(asign)!='==='(比较) – Lixus

+1

单个公式符号分配值。比较是两个==,并且与匹配类型的比较是三个=== – Dean

回答

1

您正在使用分配=if条件,而不是平等的检查:==

3

在javascript中你需要=====进行比较。 您也可以使用else if构建分支

var freq = "0"; 
 
if (freq === "0") { 
 
    var time = 300; 
 
} else if (freq === "1") { 
 
    var time = 600; 
 
} 
 
document.getElementById("demo").innerHTML = time;
<p id="demo"></p>

很少有更多的指针 使用数比较,而不是在你的代码(例如特定的),如果可能的字符串比较。

===用于严格相等性比较MDN: Equality comparisons and sameness

0
var freq = "0"; 
var time; 


if (freq == "0") { 
    time = 300; 
    } 
    if (freq =="1") { 
    time = 600; 
}