使用传统的 if 语句,我可以做到这一点:
if(a===0 || b===0) {console.log('aloha amigo')};
但是,当我尝试使用三元运算符做同样的事情时,代码如下:
a===0 || b===0 && console.log('aloha amigo')
我只是遇到了意外的 || 错误。
根据这个答案:Precedence: Logical or vs. Ternary operator,我们可以使用
condition1 || condition2 ? do if true : do if false
对于这种情况,抱歉我不知道如何称呼? :
符号,但我不确定如何使用&&
运行它(它的意思是只有在返回true
时才运行代码)。
我创建了一个CodePen来轻松测试它。以下是整个代码:
var a = 0;
var b = 1;
a===0 || b===0 ? console.log('Works here') : console.log('And here');
a===0 || b===0 && console.log('Doesn\'t work here');
a===0 && console.log('The && works for a single test');
||
和&&
——接受两个操作数的运算符)。JavaScript目前只有一个三元运算符:条件运算符:condition ? ifTrue : ifFalse
。它可能在某个阶段添加另一个三元运算符,但现在它只有一个。 - T.J. Crowder