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

Ani*_*shi 17 javascript

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

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

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

Ori*_*iol 14

这在规范中解释:

7.3线路终结器

与空格字符一样,行终止符用于提高源文本的可读性并将标记(不可分割的词汇单元)彼此分开.但是,与空白字符不同,行终止符对句法语法的行为有一些影响.通常,行终止符可能出现在任何两个令牌之间,但是有一些地方语法语法禁止它们.行终止符也会影响自动分号插入的过程 (7.9).

7.9自动分号插入

某些ECMAScript语句(空语句,变量语句,表达式语句,do-while语句,continue语句, break语句,return语句和throw语句)必须以分号结束.此类分号可能始终显式出现在源文本中.然而,为方便起见,在某些情况下可以从源文本中省略这样的分号.这些情况通过说在这些情况下分号自动插入源代码令牌流来描述.

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


Jos*_*Cho 14

当涉及到条件语句中的空格和换行符时,浏览器非常宽容。老实说,您可以摆脱很多事情(无论好坏,哈哈)。现在这两种格式是行业标准。就个人而言,我更喜欢第二种语法中的语法。

语法 A

if (
  a === 123 &&
  b === 'abc'
) { ... }
Run Code Online (Sandbox Code Playgroud)

语法 B

if (
  a === 123
  && b === 'abc'
) { ... }
Run Code Online (Sandbox Code Playgroud)

AirBnb 的首选语法:https : //github.com/airbnb/javascript/issues/1380