【发布时间】:2013-02-14 22:49:42
【问题描述】:
有人可以向我解释为什么 JSHint 抱怨以下内容,
window.location.href = String1
+ '#'
+ Sting2
+ '='
+ String3;
出现错误,Bad line breaking before '+' error
我明白这个错误可以用laxbreakoption配置,描述为
此选项会抑制大多数有关代码中可能不安全的换行符的警告。它不会抑制有关逗号优先编码样式的警告。要抑制那些你必须使用 laxcomma(见下文)。
这个解释非常简洁,我很好奇为什么以这种方式断线首先被认为是不好的或松懈的。
请记住,我并不是想在这里发动一场圣战,我只是在寻找一个客观的答案,说明为什么 JSHint 人认为这很糟糕,是否只是他们注入到他们的 linter 中的一种风格偏好(我认为 JSLint 是固执己见的 linter),或者如果以这种方式换行时某些解释器可能会出错。
【问题讨论】:
-
我认为这只是 JSHint 的“坏风格”。如果您使用前导逗号,您将获得相同的效果。为了可读性,我至少会在行尾用 + 重写它。
-
无赖。我认为这种风格绝对是与多行字符串一起使用的最易读的风格,尤其是在窄窗口中查看代码时。
-
以继续语句的标记开头有助于对齐事物并在代码块的左侧部分直观地表达延续,这是人们期望找到结构元素的地方,尤其是在快速扫描的情况下。这绝对是可行和合理的,而且客观上不是糟糕的风格。但是,执行此规则存在代码完整性问题,这很不幸。
-
@AdamTolley 我完全同意,when I asked about this 得到了似乎是 FUD 的确认。在“元效应”之后受到审查;审查似乎证实了这是可行和合理的。
-
现在 (JSHint 2.9.4) 错误消息是 '+' 之前的误导性换行符;读者可能会将其解释为表达式边界。
标签: javascript jshint