JavaScript if/else 程序未按预期生成警报

javascript if/else program not producing alert as expected

本文关键字:if else 程序 JavaScript      更新时间:2023-09-26

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

构建一个名为 changePowerTotal 的函数声明,该声明包含:

产生的总电流功率(一个数字)生成器 ID(数字)生成器的新状态(显示"开"或"关"的字符串)以及该发电机产生的电量(一个数字)您的函数应:

返回新的发电总功率以下列格式提醒技术人员用于打开:

发电机#2现在打开,增加62兆瓦

,总计62兆瓦!或者要关闭:

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

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

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 功率产生 = 62;新功率总计 = 0;

alert('生成器 #' + 生成器 ID + ' 现在是 ' + 状态 + ' , 删除 ' + 功率生产 + 'mw,总计 ' + 新功率总计 + 'MW!');

任何帮助将不胜感激。我还尝试删除退货并仅保留警报。这似乎没有帮助。

除了已经提到的问题之外,我认为问题可能在于您没有调用该函数。你需要有

changePowerTotal()

在某个地方调用它才能工作,甚至抛出错误。另外,确保定义了所有变量,并记住"="是赋值,要检查变量,请使用"=="或"==="。

我同意上面的陈述,这是一个实现它的 plunker 示例,希望这有所帮助。