我目前正在对我的web应用程序中的javascript运行JSLint,并且得到了一些错误,我需要帮助解决这些错误。
a.我得到的第一个错误是: JS Lint:未使用的变量'n‘。
$.each(collection, function (n, item) {
var temp = item.Id;
// do further processing
});b.我在一个自执行函数中声明了我所有的javascript,如下所示:
(function ($, undefined) {
// further javascript code
}
(jQuery));上述模式可以保护$不会与其他JavaScript库冲突,也可以保护未定义的$不会被重新定义。然而,我从中得到了以下错误:
JS Lint:需要一个标识符,但看到的却是'undefined‘(保留字)。JS Lint:未使用的变量'undefined‘。
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
};
}
}发布于 2011-07-23 06:53:00
A.)请参阅:http://api.jquery.com/jQuery.each/
您可以使用:
$.each(collection, function() {
doSomething(this); // this refers to the current iteration
});B.)如果你实际上没有使用"undefined“,你就不能保护它不受任何东西的影响。
C.)我不打算费心使用regex lol EDIT:也许它需要[A-Z0-9\-]
D.)您正在将字符串与数字连接在一起。试试'string' + Date.getTime().toString()吧
有关类型混淆的内容,另请参阅JSLint Type Confusion: function and object with jQuery .css(),其中有一些我不同意的奇怪之处
E.)同样,我不打算尝试正则表达式编辑:这里有一个相同的问题:JSLint "insecure ^" in regular expression
F.)如果您可以在循环之外创建一次函数,然后在循环内使用它(只要您做得很好),这将显着提高性能。
发布于 2011-07-23 06:55:44
我看到其他人已经回答了,所以我至少会尝试一下c)
c.js Lint:未转义的'-‘。
如果(value.match(/^A-Z0-9._%+-+@(?:A-Z0-9-+.)+A-Z{2,4}$/i)) {返回true;}
C.在9-和+-中的-前添加反斜杠
对不起,在E)上帮不了你,这个正则表达式对我来说没问题。
https://stackoverflow.com/questions/6796784
复制相似问题