摘录代码:
var x=0, direction=1;
function fun_1()
{
var dom_obj=document.getElementById("dir");
x+=direction;
if(x>=300 || x<=-300)
direction=-direction;
dom_obj.style.left=x;
window.setTimeout("fun_1();",5);
};
这很好用。但是,如果我在if statement
中添加大括号,则不起作用。我究竟做错了什么?
Working,没有{}
Not working,{}
非常感谢您的帮助。谢谢。
答案 0 :(得分:1)
当你不使用花括号时,它喜欢写作:
if(x>=300 || x<=-300) {
direction=-direction;
}
dom_obj.style.left=x;
window.setTimeout("fun_1();",5);
答案 1 :(得分:1)
Javascript与coffeescript不同,其中块由缩进确定,在控制语句中,如果没有{}
块,则只有控制语句被认为是控制流的一部分后的第一个语句,所以你的代码没有{}
(显式块定义)将与
var x = 0,
direction = 1;
function fun_1() {
var dom_obj = document.getElementById("dir");
x += direction;
if (x >= 300 || x <= -300) {
direction = -direction;
}
dom_obj.style.left = x;
window.setTimeout("fun_1();", 5);
};
答案 2 :(得分:0)
代码意味着两种不同的东西,具体取决于你是否包含或排除花括号。
如果你使用花括号:
如果你不使用花括号:
答案 3 :(得分:0)
因为你把Brace放错了地方
它适用于大括号。
function fun_1()
{
var dom_obj=document.getElementById("dir");
x+=direction;
if(x>=300 || x<=-300)
{
direction=-direction;
}
dom_obj.style.left=x;
window.setTimeout("fun_1();",5);
}
如果声明不关心缩进。没有括号,它只影响直接 声明,即出现在下一行中的一段代码。
所以在这种情况下,
if(x>=300 || x<=-300)
direction=-direction;
dom_obj.style.left=x;
window.setTimeout("fun_1();",5);
direction=-direction;
不受影响
dom_obj.style.left=x;
window.setTimeout("fun_1();",5);
当你支持它时,你包括
dom_obj.style.left=x;
window.setTimeout("fun_1();",5);
在您不使用大括号的情况下不包括。