2011-02-09 89 views
17

之前,我收到此錯誤:語法錯誤:缺少;聲明

SyntaxError: missing ; before statement 

爲什麼我得到這個代碼?我怎樣才能解決這個問題?

var $this = $("input"); 
foob_name = $this.attr('name').replace(/\[(\d+)\]/, function($0, $1) { 
    return '[' + (+$1 + 1) + ']'; 
})); 
+8

刪除最後一個 「)」。 – Neil 2011-02-09 00:13:16

+0

也許是一個愚蠢的問題,但是...... + $ 1`是將字符串轉換爲數字的懶惰方式,不是嗎?可怕的,如果是的話。 – 2014-06-22 18:54:15

+0

@ try-catch-finally:官方首選的方式是什麼? – mwfearnley 2016-08-24 16:34:08

回答

19

看起來你有一個額外的括號。

以下部分被解析爲一個賦值,因此解釋器/編譯器將查找分號或試圖在滿足某些條件時插入一個分號。

foob_name = $this.attr('name').replace(/\[(\d+)\]/, function($0, $1) { 
    return '[' + (+$1 + 1) + ']'; 
}) 
7

太多)括號刪除其中之一。

4

或者你可能有這樣的事情(重新聲明一個變量):

var data = []; 
var data = 
相關問題