请假设’使用严格’;并且还假设,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返回后添加分号.