如果条件将长 JavaScript 拆分为多行是否安全

Is it safe to split long JavaScript if conditions into multiple lines?

本文关键字:是否 安全 拆分 条件 JavaScript 如果      更新时间:2023-09-26
if ( true && true ||
  false && false ||
  true && true ) {
  console.log( 'Splitting condition into multiple lines worked!' );
}

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

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

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

语法 A

if (
  a === 123 &&
  b === 'abc'
) { ... }

语法 B

if (
  a === 123
  && b === 'abc'
) { ... }

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

这在规范中进行了解释:

7.3 线路终结器

与空格字符一样,行终止符字符用于 提高源文本的可读性并分隔标记(不可分割( 词汇单位(彼此之间。但是,与空白不同 字符、行终止符对 句法语法。通常,线路终止符可能发生在 任何两个令牌,但有几个地方是禁止它们的 句法语法。线路终止符也会影响 自动分号插入 (7.9(。

7.9 自动插入分号

某些 ECMAScript 语句(空语句、变量语句、 表达式语句, do-while语句, continue语句, break语句、return语句和throw语句(必须是 以分号结尾。这样的分号可能总是出现 在源文本中明确。然而,为了方便起见,这样的 在某些情况下,源文本中可以省略分号。 这些情况是通过说分号是 自动插入到源代码令牌流中 情况。

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

我最近也发现自己有一个很长的病情。下面你会发现一个我如何使用布尔((解决它的示例:

const a = new Array('', '  ', '    ');
const empty = Boolean(a[0].trim() == '' || 
                      a[1].trim() == '' || 
                      a[2].trim() == '' ||);
if (!empty){
   console.log("Fine!");
}else{
   console.log("Not fine!");   
}

我希望我能帮助你。