2

我编写了一个程序,只要按下按钮,它就会弹出警告框。问题是,我的一个功能表现得很奇怪,我不知道为什么。有时该功能不起作用,有时它会完全阻止程序发送其他功能负责的警报。我尝试使用的语法有问题吗?我尝试了很多变化...

这个简单的事情有效:

function popup(){
      alert(5+6);
};

这不会:

function popup(){
            c = 0;
                if(c=0){
                    alert(5+6);
                }
};

这会阻止整个程序工作:

    function popup(){
        x=0
        y=0
        while(x=0;x<array.length;x++)
            if(y>0){
                alert(5+6);
            }
            else(y=0){
                alert(1+2)
                y++
            }
    };
4

2 回答 2

3

你大概是说

else if (y==0){

并不是

else(y=0){

y=0将 y 设置为 0 并始终返回 0,无论 y 之前的值是多少。

while将一条语句作为条件(参见参考资料)。您的 while 循环可能正在检查 x++ 的结果,因此它永远不会结束。

您可能应该有一个 for 循环。

在进入测试值的循环之前将 y 设置为 0 非常奇怪。我想你应该是array[x]

function popup(){
    for (x=0; x<array.length; x++) {
        var y = array[x]; // just a guess, but this seems reasonnable
        if (y>0){
            alert(5+6);
        } else if (y==0) {
            alert(1+2);
            y++;
        }
};

但是;正确地添加所有代码并格式化/缩进可能会避免你很多麻烦。

我建议坚持Google 的 javascript 样式指南

于 2012-12-08T11:18:22.210 回答
3

我想你想在这里做一个 for 循环。

if (y=0) 进行分配,而不是比较。

else(y=0){ 应该是“否则如果”。"else if" 进行比较,如果之前的 "if" 子句为假,则 as - else 为真。

好像你的数组没有初始化?- 或者这是否更早初始化?

我认为这更接近你想要的?:

function popup() {
    y = 0;
    for (var x = 0; x < array.length; x++) {
        if (y > 0) {
            alert(5 + 6);
        }
        else if (y == 0)
        {
            alert(1 + 2);
            y++;
        }
    }
}
于 2012-12-08T11:24:11.030 回答