2011-02-09 110 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 =