2012-11-01 72 views
0

我正在使用別人所見即所得的編輯器代碼,但JSlint說有兩個錯誤。我想知道是否有人可以幫助解釋/修復它們。JSlint Jquery Error - Expected}

這是代碼: http://jsfiddle.net/sCATj/40/

是JSLint的說的錯誤是:

Error: 
Problem at line 3 character 40: Expected '{' and instead saw 'return'. 
if (!(array instanceof Array)) return; 

Problem at line 4 character 25: Cannot set property 'first' of undefined 

我不知道的jQuery。我應該把一個}而不是回報?

+1

請在這裏發佈您的代碼。 –

+1

閱讀錯誤消息。真。它希望{在回報的地方。把括號放在if的主體上。 – SoonDead

+0

這沒有幫助 – Jimmy

回答

4

JSLint是一個不起眼的語法檢查器。

It requires that all if statements are associated with a block not a statement

這是有效的JavaScript:

if (foo) 
    return something; 

這是更容易維護的JavaScript(和由JSLint的要求):

if (foo) { 
    return something; 
} 

的主要理由是,如果代碼是後面編輯添加另一個語句,編輯器可能不會注意到大括號丟失並執行此操作:

if (foo) 
    bar = foo; 
    return something; 

可以得到相同的結果爲:

if (foo) { 
    bar = foo; 
} 
return something; 

,而不是所期望的:

if (foo) { 
    bar = foo; 
    return something; 
} 

避免快捷方式(尤其是那些條件(可以省略大括號如果有隻是一個聲明))是防禦程序的一種形式,可以減少引入錯誤的變化。

0

從技術上講,如果在if塊中只有一個語句正在生成,那麼可以忽略大括號。

你可以放心地忽略這個'錯誤'。

+1

您可以「安全地」忽略大部分JSLint的錯誤。他們中的大多數都是有原因的,不理解他們背後的動機就不應該被忽視。 – Quentin

相關問題