帮助需要解决jslint错误

assistance require resolving jslint errors

本文关键字:jslint 错误 解决 帮助      更新时间:2023-09-26

我目前在我的web应用程序中运行JSLint对javascript,并得到一些错误,我需要帮助解决。

。我得到的第一个错误是:JS Lint:未使用的变量'n'.

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

b。我将所有javascript声明在一个自执行函数中,如下所示:

(function ($, undefined) {
// further javascript code
}
(jQuery));
上面的模式可以保护$不与其他JavaScript库冲突,也可以保护undefined不被重新定义。然而,我得到了这些错误:

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-': string和'(':number。

  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)如果你没有使用"undefined"你就没有保护它不受任何影响

c .)我不打算麻烦正则表达式lol编辑:也许它想要[A-Z0-9'-]

d .)您正在连接字符串和数字。尝试'string' + Date.getTime().toString()代替

参见JSLint类型混淆:jQuery .css()的函数和对象的类型混淆的东西,有一些奇怪的,我不同意

大肠)同样,我不会尝试使用正则表达式编辑:这里有一个相同的问题:JSLint不安全^"在正则表达式

f)如果你可以在循环外创建函数,然后在循环内使用它(只要你做得好),这是一个显著的性能提升。

我看到其他人已经回答了,所以我至少会尝试c)

c。JS Lint:未转义'-'.

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

C。在9-+-

中-前添加反斜杠

对不起,不能帮你解决E),这个正则表达式对我来说很好。