Javascript if子句不起作用

时间:2012-02-19 13:51:52

标签: javascript variables

我在使用需要考虑全局变量的javascript函数时遇到问题。

这是我想要实现的一种控制机制,但我似乎无法做到这一点。

这是相关代码

<script type="text/javascript">
var active = 0;

function SetEndTime(lngOpenPersonID,lngToDoID){
if(active = 0){
    alert('Time has been stopped');
}
else{
    var strURL = 'blabla';
    CallAJAXURL(strURL);
}
active = 0;
}
function SetStartTime(lngToDoID,lngToDoItemID,bitCountsForTotal){
if(active = 1){
    alert('Time has been started');
}
else{
    var strURL = 'blabla';
    CallAJAXURL(strURL);
}
active = 1;
}

当我在没有做任何其他事情的情况下调用SetStartTime时,我总是收到警报。我的语法有问题吗?

2 个答案:

答案 0 :(得分:4)

if (active == 0) {

您需要 2 “=”字符才能生成比较运算符。还有===执行没有类型提升的相等比较。

您的代码在语法上是正确的,因为赋值操作是一个有效的表达式。您拥有的第一个if声明:

if (active = 0) {

永远不会是true,因为表达式的值始终为零。第二个:

if (active = 1) {

相反总是true因为值总是一个。

答案 1 :(得分:2)

它不是(alert = 1) ..它的( alert == 1 ) ..你的情况说它始终是真的 - 你的分配警报1