2011-02-09 29 views
17

Tôi nhận được lỗi này:Cú phápError: thiếu; trước khi tuyên bố

SyntaxError: missing ; before statement 

Tại sao tôi nhận được rằng từ mã này? Làm sao để tôi có được xung quanh này ?

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

Tháo cuối cùng ")". – Neil

+0

Có lẽ một câu hỏi ngớ ngẩn, nhưng ... '+ $ 1' là một cách lười biếng để chuyển đổi chuỗi thành một số, phải không? Khủng khiếp, nếu có. –

+0

@ try-catch-finally: cách chính thức được ưa thích để làm điều đó là gì? – mwfearnley

Trả lời

19

Có vẻ như bạn có thêm dấu ngoặc đơn.

Phần sau đây được phân tích cú pháp dưới dạng bài tập để trình thông dịch/trình biên dịch sẽ tìm kiếm dấu chấm phẩy hoặc cố chèn một dấu chấm phẩy nếu đáp ứng các điều kiện nhất định.

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

hoặc nó sẽ là tuyệt vời nếu đó là thông báo lỗi thực tế! –

7

quá nhiều) dấu ngoặc đơn xóa một trong số chúng.

4

Hoặc bạn có thể có một cái gì đó như thế này (redeclaring một biến):

var data = []; 
var data = 
+0

Đây là trường hợp của tôi! – ch4rlie

Các vấn đề liên quan