Ann*_*nan -1 javascript logic conditional boolean
在javascript中有几种方法可以做到这一点.
最重要,最具可读性和灵活性的可能是:
if (a){
//b
}
else {
//c
}
Run Code Online (Sandbox Code Playgroud)
其他只能用于分配且不太可读的东西是:
var foo = 'c';
if (a){
foo = 'b';
}
Run Code Online (Sandbox Code Playgroud)
不过,我的主要问题是关于我能想到的最后两种方法:
var foo = a ? b : c;
var foo = a && b || c;
Run Code Online (Sandbox Code Playgroud)
这两个表达式之间有什么区别吗?除了缺乏可读性之外.
*尽管您可以将foo指定为函数,然后在if语句之后执行它.
假设:
var a = false, b = '', c = 'bar';
Run Code Online (Sandbox Code Playgroud)
然后:
var foo = a ? b : c; // foo == ''
var foo = a && b || c; // foo == 'bar'
Run Code Online (Sandbox Code Playgroud)
这两者并不等同; 你永远不应该使用布尔运算符代替条件运算符.像其他回答者一样,我也认为条件运算符不缺乏简单表达式的可读性.