2017-01-02 79 views
0

我設法通過添加一個分號來分解一些代碼。額外的半冒號中斷字符串相等

是否包含多餘的分號會使代碼忽略if ...語句並運行通常歸因於事實的代碼?或者在引擎蓋下做了其他事情,可以這麼說嗎?

var str = "NEWS"; 
var d = "W"; 

for (var i = 0; i < str.length; i++) 
{ 
    if (str[i] === d); // extra semi colon 
    { 
    alert("!" + str[i]); 
    break; 
    } 
} 
+2

';'是(if)爲真時運行的(空)代碼塊。代碼的其餘部分現在始終運行。 –

+1

這不是一個「多餘的」分號 - 你不應該在任何使用分號作爲終止符的語言中放置分號。 – Damon

+0

這是一個錯字:) –

回答

0

基本上你正在做If(condition)執行;即等於什麼都不做。然後它通常執行代碼,即alertbreak

1

分號代表if語句通過時要執行的代碼行。在{}之間的以下區塊在沒有if聲明的情況下執行。

0

分號引入了一個空語句,該語句將成爲if-語句的主體,然後是無條件的塊。寫縮進方式不同,它是

var str = "NEWS"; 
var d = "W"; 
for (var i = 0; i < str.length; i++) { 
    if (str[i] === d) 
     ; // extra semi colon 
    { 
     alert("!" + str[i]); 
     break; 
    } 
} 

是相同,若該塊不作任何這裏區別

var str = "NEWS"; 
var d = "W"; 
for (var i = 0; i < str.length; i++) { 
    if (str[i] === d) { 
     ; // extra semi colon 
    } 
    alert("!" + str[i]); 
    break; 
}