JSHint 在“+”错误之前的坏换行说明

2022-08-30 04:35:17

有人可以向我解释为什么JSHint抱怨以下内容,

window.location.href = String1
    + '#'
    + Sting2
    + '='
    + String3;

如果出现错误,Bad line breaking before '+' error

我知道可以使用该选项配置此错误,该选项描述为laxbreak

此选项禁止显示有关代码中可能存在不安全换行的大多数警告。它不会禁止显示有关逗号优先编码样式的警告。要抑制这些,你必须使用松弛的逗号(见下文)。

这个解释非常简洁,我很好奇为什么以这种方式断线首先被认为是不好的或松懈的。

请记住,我并不是想在这里开始一场圣战,我只是在寻找一个客观的答案,为什么JSHint的人认为这是不好的,无论是他们只是一种风格偏好注入他们的linter(我认为JSLint是固执己见的linter),或者当以这种方式换行时,某些解释者可能会出错。


答案 1

这是一个风格指南,以避免可能容易对自动分号插入进行假设的陈述。

这个想法是,您可以在行尾清楚地说明表达式是在那里结束还是可以在下一行继续。


答案 2

Jshint 不会将此标记为错误的换行符,如果您在换行符之前使用 + 而不是在新行中。这样:

window.location.href = String1 +
'#' +
Sting2 +
'=' +
String3;