当将以下代码传递给jshint时,它认为if条件中的换行符是坏的,说“在'&&'之前坏行断开。”
if (1 == 1
&& true) {
console.log("hello world");
}
然而,在'&&'之后使用换行符很好。
if (1 == 1 &&
true) {
console.log("hello world");
}
为什么jshint认为第一个是错误的而后者是正确的?
答案 0 :(得分:13)
这可能会导致半冒号插入和旧的javascript解析器崩溃等问题。请检查各种浏览器。
<击> This check can be disabled with laxbreak:true
击>
laxbreak
选项正在弃用,但我不确定默认的jshint行为是否会发生变化。
答案 1 :(得分:3)
JSHint的创建者可能不喜欢这种包装并且更喜欢第一行中的&&
,这似乎更常见:
这个约定背后的主要原因是运算符清楚地表明该行是前一行的延续。在断线前使用操作员,这很难发现。
实际上,关于你在Github上的确切问题存在一个问题:https://github.com/jshint/jshint/issues/557