什么规则管理内联jslint指令

eol*_*son 4 javascript jslint

我试图保持jslint排除尽可能接近错误,以免错误地隐藏任何错误.示例中未使用的参数在x函数中f2,我只想排除这种情况.

第一个示例,不包括周围的函数,但会隐藏其他错误,如果有的话:

/*jslint unparam: true*/
function test1() {
    var f1 = function (x) {
            alert(x);
        },
        f2 = function (x) {};

    f1(0);
    f2(0);
}
/*jslint unparam: false*/
Run Code Online (Sandbox Code Playgroud)

围绕var语句也有效,但会隐藏错误f1:

function test2() {
    /*jslint unparam: true*/
    var f1 = function (x) {
            alert(x);
        },
        f2 = function (x) {};
    /*jslint unparam: false*/

    f1(0);
    f2(0);
}
Run Code Online (Sandbox Code Playgroud)

这个产生一个错误:"预期一个标识符,而是看到'/*jslint'(一个保留字)."

function test3() {
    var f1 = function (x) {
            alert(x);
        },
        /*jslint unparam: true*/
        f2 = function (x) {};
        /*jslint unparam: false*/

    f1(0);
    f2(0);
}
Run Code Online (Sandbox Code Playgroud)

问题是,你在源中的哪个位置允许使用jslint指令?

eol*_*son 6

只能排除同一var声明中的一个函数.如评论中所述,只有完整的语句才能有jslint指令; 结果如下:

function test4() {
    var f1, f2;

    f1 = function (x) {
        alert(x);
    };

    /*jslint unparam: true*/
    f2 = function (x) {};
    /*jslint unparam: false*/

    f1(0);
    f2(0);
}
Run Code Online (Sandbox Code Playgroud)