用“严格使用”是否“坏线断裂”已经过时了?

时间:2013-02-18 08:57:14

标签: javascript jslint use-strict

请假设'使用严格';并且还假设,JSLint已启用且错误不能被忽略。

我发现运算符和','启动列表更具可读性

e.g:

var i = 0
    , j = 1
    , someLongVariablename1
    , someLongVariablename2
    , someLongVariablename3
    , someLongVariablename4;

 if( (
     'dcr' === cmd
      && (action)
      && ('get' === actionHttp || 'post' === actionHttp )
      && whatever
   ) { ... }

因此我的问题:
用“严格使用”是否“坏线断裂”已经过时了?

编辑:'使用严格';不会阻止执行坏线破坏代码。它可以防止执行某些错误。

我看到JSLint和JSHint以不同方式处理坏线。 JSHint对我喜欢的语法更友好。

因此,对于正在研究这个问题的其他人来说,这可能是一个解决方案。

1 个答案:

答案 0 :(得分:5)

不幸的是,strict mode并未禁用automatic semicolon insertion的恐怖,因此“坏”换行仍然存在问题。例如:

(function() {
  "use strict";

  console.log(foo());

  function foo() {
    var a = 1, b = 2;

    return
    a + b;
  }
})();

Live Example | Source(你需要打开控制台并查看它)

仍然会记录undefined而不是3,因为ASI会在return foo之后启动并添加分号。