[英]if-statement not working with curly brackets
摘錄代碼:
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
添加大括號, if statement
它不起作用。 我究竟做錯了什么?
工作 ,沒有{}
無法使用{}
對你的幫助表示感謝。 謝謝。
當您不使用大括號時,它就像寫:
if(x>=300 || x<=-300) {
direction=-direction;
}
dom_obj.style.left=x;
window.setTimeout("fun_1();",5);
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);
};
該代碼表示兩種不同的情況,具體取決於您是否包含花括號。
如果使用花括號:
如果不使用花括號:
因為您將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語句不關心縮進。 如果不使用大括號,它將僅影響立即執行的語句,即,出現在下一行的代碼段。
所以在這種情況下
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);
不使用花括號的情況不包括在內。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.