【问题标题】:What rules govern inline jslint directives哪些规则管理内联 jslint 指令
【发布时间】:2011-11-22 03:55:55
【问题描述】:

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

第一个例子,排除周围的函数可以,但是如果有其他错误会隐藏:

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

    f1(0);
    f2(0);
}
/*jslint unparam: false*/

围绕 var 语句也可以,但会隐藏 f1 中的错误:

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

    f1(0);
    f2(0);
}

这会产生错误:“应为标识符,但看到的是 '/*jslint'(保留字)。”。

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

    f1(0);
    f2(0);
}

问题是,你可以在源代码的哪个位置使用 jslint 指令?

【问题讨论】:

  • 显然是在完整声明之前和之后,而不是介于两者之间。 Crockford 不推荐您的符号。为了满足 jslint,您应该将 vars 的声明与其分配分开。

标签: javascript jslint


【解决方案1】:

在同一个 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);
}

【讨论】:

    猜你喜欢
    • 2018-09-05
    • 2010-10-21
    • 2011-03-12
    • 1970-01-01
    • 2020-06-05
    • 2012-06-14
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多