为什么JSLint会在'返回'之后抱怨“意外'其他'”?

时间:2012-02-28 11:02:17

标签: javascript jslint

JSLint抱怨以下(无用示例)代码无效:

(function (x) {
    "use strict";
    if (x === 1) {
        return 1;
    } else if (x === 2) {
        return -1;
    }
    return 0;
}(1));
  

错误:   第4行字符9处的问题:“返回”后出现意外的“其他”。

     

返回1;

是否认真地建议在if / else结构中使用return语句是不好的?

它认为这个版本很好:

(function (x) {
    "use strict";
    var returnval = 0;
    if (x === 1) {
        returnval = 1;
    } else if (x === 2) {
        returnval = -1;
    }
    return returnval;
}(1));

3 个答案:

答案 0 :(得分:90)

它只是告诉你else之后的return是多余的。以下情况很好:

(function (x) {
    "use strict";
    if (x === 1) {
        return 1;
    }  
    if (x === 2) {
        return -1;
    }
    return 0;
}(1));

答案 1 :(得分:4)

我发现w / jslint的内容是,如果你遵守规则 - 50%是荒谬的,但对你的代码没有负面影响。另外50%(左右)会给你带来很好的好处。所以对其他50%这样做。这个特殊的例子迫使你明确关于条件或类似的逆...而不是让它隐含于else ...同样适用于if / else我的意思。

答案 2 :(得分:1)

最好让函数总是返回一些东西,因为它增加了一致性。众所周知,JSLint非常严格,会伤害程序员的感受。不能帮助它。我个人认为版本1很好