2012-08-02 50 views
0

我想了解鏈接以及如何通過閱讀OPC自己做到這一點。我仍然很困難。在學習這些時,我遇到了一些錯誤處理,這引起了我的眉毛。從縮排看來,第4行不是從第2行開始的if語句的一部分。我是否有權假定2行if語句不需要大括號,並且解釋器假定當存在缺乏花括號,只有直接處理if語句的行是if語句的一部分;因此,第四行是不是在以下塊中的if語句的一部分:第2行的if語句是否在第4行?

set: function (mystr, func) { 
     if (!this[mystr]) 
      throw new Error("unknown hook " + mystr); 
     this[mystr] = func; 
    }, 
+1

這不是你的問題的最好例子 - 因爲錯誤的拋出意味着即使它在* if區塊內,它也不會被執行。 (事實並非如此)。 – 2012-08-02 08:07:01

+0

@AndrzejDoyle用一塊石頭殺死兩隻鳥。感謝您的評論。 – 2012-08-02 08:22:08

回答

3

這通常不是聲明隨後一個被認爲與它所屬的if語句。

+0

謝謝。所以基本上所有的東西都在下一個分號之前。 – 2012-08-02 08:22:47

+0

@ Wolfpack'08。分號在JS中是可選的。沒有大括號,這是下一個** ON * STATEMENT **。 – 2012-08-02 10:32:33

+0

@Flem你知道我在哪裏可以讀到關於'ON * STATEMENT'的信息嗎? – 2012-08-02 14:05:25

2

只有在塊中有多條語句時才需要大括號。如果您不使用大括號,則下一個語句(單個)將位於該塊內,以下語句將位於該塊之外。

if (something) 
    StatementIfTrue(); 
StatementEitherWay(); 

if (something) 
{ 
    StatementIfTrue1(); 
    StatementIfTrue2(); 
} 
StatementEitherWay(); 

if (something) StatementIfTrue(); StatementEitherWay(); 
+0

感謝您的回答。瘋狂的尊重這個例子。 – 2012-08-02 08:26:28

1

是的,第4行不在if塊中。

沒有大括號,只有在if之後的下一個語句將在if塊中。

相關問題