请假设’使用严格’;并且还假设,JSLint已启用且无法忽略错误.
我发现运算符和’,’启动列表更具可读性,
例如.:
var i = 0,j = 1,someLongVariablename1,someLongVariablename2,someLongVariablename3,someLongVariablename4; if( ( 'dcr' === cmd && (action) && ('get' === actionHttp || 'post' === actionHttp ) && whatever ) { ... }
因此我的问题是:
用“严格使用”是否“坏线断裂”已经过时了?
编辑:’使用严格’;不会阻止执行坏线破坏代码.它可以防止执行某些错误.
我看到JSLint和JSHint以不同的方式处理坏的断行. JSHint对我喜欢的语法更友好.
这样,对于正在研究这个问题的其他人来说,可能是一个解决方案.
解决方法
不幸的是,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启动并在foo返回后添加分号.