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