if ( true && true ||
false && false ||
true && true ) {
console.log( 'Splitting condition into multiple lines worked!' );
}
上面的代码片段是否适用于所有相关的浏览器?
PS:我也很担心IE8,因为它有太大的市场份额而无法忽视今天。答案 0 :(得分:12)
这在规范中解释:
与白色空格字符一样,行终止符字符用于 提高源文本的可读性和分离令牌(不可分割的 词汇单位)彼此。但是,与白色空间不同 字符,行终止符对行为有一些影响 句法语法。通常,线路终结器可能发生在 任何两个令牌,但有一些地方被禁止 句法语法。行终止符也会影响进程 automatic semicolon insertion (7.9)
7.9 Automatic Semicolon Insertion
某些ECMAScript语句(空语句,变量语句, 表达式语句,
do-while
语句,continue
语句, 必须是break
语句,return
语句和throw
语句 以分号结束。这样的分号可能总是出现 明确地在源文本中。然而,为方便起见,这样 在某些情况下,源文本中可能会省略分号。 这些情况用分号表示 自动插入源代码令牌流中的那些 的情况。
所以在大多数情况下你可以做到。你的情况就是其中之一。
答案 1 :(得分:0)
我最近还发现自己的病情很长。 下面您将找到一个使用 Boolean()
解决方法的示例: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!");
}
希望我能为您提供帮助。
答案 2 :(得分:0)
我在Github上发现了这一点,并发现了这一点。现在,这两个都可以接受。我发现第二种情况下需要读取语法。
if (
a === 123 &&
b === 'abc'
) { ... }
if (
a === 123
&& b === 'abc'
) { ... }
AirBnb的首选语法:https://github.com/airbnb/javascript/issues/1380