7

请假设“使用严格”;并且还假设 JSLint 已打开并且不能忽略错误。

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

例如:

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

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

因此我的问题
是:“使用严格”是否已过时?

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

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

因此,对于正在从事此工作的其他人来说,这可能是一个解决方案。

4

1 回答 1

5

不幸的是,严格模式不会禁用自动分号插入的恐怖,因此“坏”换行符仍然是一个问题。例如:

(function() {
  "use strict";

  console.log(foo());

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

    return
    a + b;
  }
})();

实例| 源码(需要打开控制台查看)

那仍然记录undefined而不是3,因为 ASI 启动并在returnin之后添加一个分号foo

于 2013-02-18T09:03:05.743 回答