编程语言
首页 > 编程语言> > Javascript三元运算符,其他为空

Javascript三元运算符,其他为空

作者:互联网

我正在尝试将以下if-else转换为javascript中的三元运算符表示,如下所示

var x = 2;
if (x === 2) {alert("2");}
else
         { //do nothing}

但是当我这样做时:

(t==2)?(alert("1")):();

Chrome会抛出一个SyntaxError.

我的问题是 –
如何使用空的“else”分支在javascript中使用三元运算符 – 即“:”之后的部分.
此外,这是允许的 – 使用javascript中的三元运算符来执行语句 – 不执行赋值.

另外:上面的代码只是一个基本案例.我实际上试图将页面的所有DOM元素作为一个数组(称为all2),然后只有在它们具有非空类名时才将这些元素添加到另一个数组(仅限于调用).这是我的代码:

all2.forEach(function(e){ e.getAttribute("class") ? (only.push(e.getAttribute("class"))) : (); }); 

如果我将第三个操作数留空,则会引发语法错误.传递null工作

解决方法:

在评论中回答您的真实问题:

all2.forEach(function (e) {
    e.getAttribute("class") && only.push(e.getAttribute("class"));
});

标签:ternary,javascript,if-statement
来源: https://codeday.me/bug/20191007/1865153.html