[英]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.