Explanation of JSHint's Bad line breaking before '+&
Explanation of JSHint's Bad line breaking before '+' error
谁能给我解释一下为什么JSHint会抱怨以下内容,
window.location.href = String1
+ '#'
+ Sting2
+ '='
+ String3;
有错误,Bad line breaking before '+' error
我知道这个错误可以用laxbreak
选项配置,它被描述为
此选项将抑制大多数关于代码中可能不安全的断行的警告。它不会屏蔽有关逗号优先编码风格的警告。要抑制这些,你必须使用逗号(见下文)。
这个解释很简洁,而且我很好奇为什么这样换行首先被认为是不好的或宽松的
请记住,我不是想在这里开始一场战争,我只是在寻找一个客观的答案,为什么JSHint的人认为这是不好的,是否只是一种风格偏好,他们注入到他们的linter(我认为JSLint是固执己见的linter),或者如果有什么东西可能会出错,某些解释器当换行时,这种方式
这是一个风格指南,用于避免可能容易产生自动分号插入的假设。
这样做的目的是为了在行尾明确表达式是否在此结束,或者是否可以在下一行继续。
Jshint不会将此标记为错误的换行符,如果您在换行符之前而不是在新行中使用+。像这样:
window.location.href = String1 +
'#' +
Sting2 +
'=' +
String3;
不是对这个问题的直接回答,但是对于那些希望保留规则但修复警告的人(像我一样),以下可能是有用的…
当使用notepad++(例如使用JSLint插件)时,可以使用以下搜索&替换:
- 查找目录:
('r'n|'n|'r)( *)'+
- 替换为:
+$1$2
(包括首、尾空格) - 搜索方式:正则表达式
(仅在Windows上测试,但正则表达式也应适用于Unix或Mac OS的行结尾。)
要为||
, &&
, ==
, !=
, <=
或>=
而不是+
做类似的事情,使用以下命令:
- 替换为:
$3$1 $2
(包括第一和最后一个空格)
('r'n|'n|'r)( *)('|'||&&|==|!=|<=|>=)
相关文章:
- 无法覆盖CSS伪元素:before
- React DOM offsetHeight before rendering
- SyntaxError:缺少;before语句使用AJAX
- strongloop script.js run find in before delete方法:如何同步运行异步方法
- jquery insert-before to text in the same DOM
- 将内容添加到每行的开头,例如第一行的 ::before
- 样式 DOM 上的 $.before() 性能问题
- ember.js appending view to just before </body>
- 为node.js中的方法设置before/after钩子
- 有什么技巧可以让vw调整大小以在webkit浏览器上的:before伪类上工作吗
- SyntaxError:缺少;before语句-jQuery ContentHover
- jQuery:如何选择所有具有:before或:after的伪元素
- Breaking .preventDefault()
- 在 .before() 中多次使用相同的参数并不像我预期的那样工作
- JavaScript:任何改变CSS伪:before和:after的机会或替代方案
- 选择一个 CSS 选择器来动态设置元素的样式 ::before
- 如何在jquery中使用.before时对元素进行动画处理
- 如何获取对 JS中 ::before 或 ::after 节点的引用
- jquery before() after() 不能正常工作
- Explanation of JSHint's Bad line breaking before '+&