问题 如果条件分成多行,将长JavaScript拆分是否安全?


if ( true && true ||
  false && false ||
  true && true ) {
  console.log( 'Splitting condition into multiple lines worked!' );
}

上面的代码片段是否适用于所有相关的浏览器?

PS:我也担心IE8,因为它有太大的市场份额,不能忽视今天。


1474
2018-03-19 20:27


起源

它应该,我们的编码标准实际上有150个字符/行限制,所以有时必须像这样打破它。 - Christopher Marshall
有点相关 - James Thorpe
内部空格被忽略 if 声明条件(没有自动半决赛) - dandavis


答案:


这在规范中解释:

7.3线路终结器

与空格字符一样,行终止符字符用于   提高源文本可读性和分离令牌(不可分割   词汇单位)彼此。但是,与白色空间不同   字符,行终止符对行为有一些影响   句法语法。通常,线路终结器可能发生在   任何两个令牌,但有一些地方被禁止   句法语法。行终止符也会影响进程    自动分号插入(7.9)

7.9自动分号插入

某些ECMAScript语句(空语句,变量语句,   表达陈述, do-while 声明, continue 声明,    break 声明, return 声明,和 throw 声明)必须   以分号结束。这样的分号可能总是出现   明确地在源文本中。然而,为了方便起见   在某些情况下,源文本中可能会省略分号。   这些情况用分号表示   自动插入源代码令牌流中的那些   的情况。

所以在大多数情况下你可以做到。你的案例就是其中之一。


10
2018-03-19 20:40