簡體   English   中英

幫助需要解決 jslint 錯誤

[英]assistance require resolving jslint errors

我目前正在我的 web 應用程序中針對 javascript 運行 JSLint,並遇到一些需要幫助解決的錯誤。

一個。 我得到的第一個錯誤是:JS Lint:未使用的變量'n'。

 $.each(collection, function (n, item) {
                var temp = item.Id;
        // do further processing
    });

灣。 我的所有 javascript 都在自我執行的 function 中聲明,如下所示:

(function ($, undefined) {
// further javascript code
}
(jQuery));

上述模式可以保護 $ 不與其他 JavaScript 庫沖突,還可以保護 undefined 不被重新定義。 但是我從中得到了這些錯誤:

JS Lint:需要一個標識符,但看到的是“未定義”(保留字)。 JS Lint:未使用的變量“未定義”。

c。 JS Lint:未轉義的“-”。

 if (value.match(/^[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4}$/i)) {
    return true;
 }

d。 JS Lint:類型混淆:'printer-':字符串和'(':數字。

  var frameName = "printer-" + new Date().getTime();

我收到很多類型混淆的錯誤,有時是數字、整數和其他數據類型。 關於如何防止得到這些的任何想法?

e. JS Lint:不安全的'^'。

var value = value.replace(/[^\d\.,\-]/gi, '');

F。 JS Lint:不要在循環中創建函數。

for (i = 0, l = txts.length; i < l; i += 1) {
        if (/^[0-9]+$/.test(txts[i].getAttribute("maxlength"))) {
            var func = function () {
                //do some processing
            };
        }
    }

A.) 見: http://api.jquery.com/jQuery.each/

您可以使用:

$.each(collection, function() {
    doSomething(this); // this refers to the current iteration
});

B.)如果您實際上沒有使用“未定義”,那么您就沒有保護它不受任何影響

C。)我不會打擾正則表達式大聲笑編輯:也許它想要[A-Z0-9\-]

D.)您正在將字符串與數字連接起來。 嘗試'string' + Date.getTime().toString()代替

另請參閱JSLint 類型混淆:function 和 object 與 jQuery.css()類型混淆的東西,有一些奇怪的東西我不同意

E.) 同樣,我不打算嘗試正則表達式 編輯:這是一個相同的問題: JSLint "insecure ^" in regular expression

F.) 如果您可以在循環外創建 function 然后在循環內使用它(只要您做得好),這將顯着提高性能。

我看到其他人已經回答了,所以我至少會嘗試一下 c)

c。 JS Lint:未轉義的“-”。

 if (value.match(/^[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[AZ]{2,4}$/i)) { return true; }

C。 9-+-中的 - 之前添加反斜杠

抱歉,E) 無法為您提供幫助,我覺得該正則表達式沒問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM