Ale*_*ide 2 javascript if-statement ternary-operator
使用传统的if语句我可以这样做:
if(a===0 || b===0) {console.log('aloha amigo')};
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用三元运算符执行相同的操作时,如下所示:
a===0 || b===0 && console.log('aloha amigo')
Run Code Online (Sandbox Code Playgroud)
我只是得到意外的错误||.
根据这个答案:Precedence:Logical或vs. Ternary运算符,我们可以使用它
condition1 || condition2 ? do if true : do if false
Run Code Online (Sandbox Code Playgroud)
(对不起,我不知道? :在这种情况下如何调用符号),但我不确定如何使用它运行&&(这意味着只有在返回时运行代码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');
Run Code Online (Sandbox Code Playgroud)
只需使用括号来防止运算符优先于&&结束||
(a === 0 || b === 0) && console.log('aloha amigo')
Run Code Online (Sandbox Code Playgroud)
如果没有括号,您将获得(现在显示优先级)不同的结果.
a === 0 || (b === 0 && console.log('aloha amigo'))
^^^^^^^ first evaluation
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ second evaluation
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7064 次 |
| 最近记录: |