我编写了一个程序,只要按下按钮,它就会弹出警报框。问题是,我的一个功能是非常奇怪,我无法弄清楚原因。有时功能不起作用,有时它完全阻止程序发送其他功能负责的警报。我正在尝试使用的语法有什么问题吗?我尝试了很多变化......
这个简单的事情有效:
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++
}
};
答案 0 :(得分:3)
你可能意味着
else if (y==0){
而不是
else(y=0){
y=0
将y设置为0并始终返回0,无论y之前是什么值。
while
将一个语句作为条件(参见reference)。你的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++;
}
};
但是正确地添加所有;
和格式化/缩进你的代码可能会避免你很多麻烦。
答案 1 :(得分:3)
我想你想在这里做一个for循环。
如果(y = 0)进行分配,而不是比较。
else(y = 0){应该是“else if”。 “否则如果”进行比较,其中as - 如果前面的“if”子句为假,则变为true。
您的数组似乎未初始化? - 或者这是否已提前初始化?
我认为这更接近你想要的东西?:
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++;
}
}
}