javascript if / else程序没有按预期生成警报

时间:2013-11-10 15:06:47

标签: javascript if-statement

我正在尝试编写一个执行以下操作的简单程序:

构建一个名为changePowerTotal的函数声明,它接受:

产生的总电流(一个数字) 生成器ID(数字) 生成器的新状态(表示“打开”或“关闭”的字符串) 并且该发电机产生的电量(一个数字) 你的功能应该:

返回新生成的总功率 以下列格式提醒技术人员 如需开启:

发电机#2现已开启,增加62兆瓦,总共62兆瓦! 或关闭:

发电机#2现已关闭,移除62兆瓦,总计0兆瓦!

到目前为止我的解决方案如下:

var generatorId = 2;
var status = "off";
var totalCurrentPower = 62;
var powerProduced = 62;

function changePowerTotal (totalCurrentPower, generatorId, status, powerProduced){
    if(status = "off"){
        var offPowerTotal = totalCurrentPower - powerProduced;
        alert('Generator #' + generatorId + ' is now ' + status + ' , removing ' + powerProduced + 'mw, for a total of ' + newPowerTotal + 'MW!');
        return offPowerTotal;
    }
    else {
        var onPowerTotal = totalCurrentPower + powerProduced;
        alert('Generator #' + generatorId + ' is now ' + status + ' , adding ' + powerProduced + 'mw, for a total of ' + newPowerTotal + 'MW!');
        return onPowerTotal;
    }
}

麻烦的是,这不会引发警报,对我来说更糟糕的是新手,它不会在javascript控制台中产生错误。我做错了什么?

如果我将其分解并将警报中的所有变量分配为全局,然后进行警报,则可以正常工作(参见下文)。这让我相信它与我的函数中的if / else有关。

  

var generatorId = 2; var status =“off”; var totalCurrentPower = 62;   var powerProduced = 62; newPowerTotal = 0;

     

警告('生成器#'+ generatorId +'现在是'+ status +',正在删除   '+ powerProduced +'mw,共计'+ newPowerTotal +'MW!');

非常感谢任何帮助。我也尝试删除退货并离开警报。这似乎没有帮助。

2 个答案:

答案 0 :(得分:1)

除了已经提到的问题之外,我想问题可能是你没有调用这个函数。你需要

changePowerTotal()

在某处调用它可以工作,甚至抛出错误。另外,确保定义了所有变量,并记住“=”是赋值,检查变量使用“==”或“===”。

答案 1 :(得分:0)

我同意上述陈述,here is a plunker example of it implemented希望这会有所帮助。