当前位置:  开发笔记 > 编程语言 > 正文

三元运算符和A,B,否则C.是否存在重要差异?

如何解决《三元运算符和A,B,否则C.是否存在重要差异?》经验,为你挑选了2个好方法。

在javascript中有几种方法可以做到这一点.

最重要,最具可读性和灵活性的可能是:

if (a){
    //b
}
else {
    //c
}

其他只能用于分配且不太可读的东西是:

var foo = 'c';
if (a){
    foo = 'b';
}

不过,我的主要问题是关于我能想到的最后两种方法:

var foo = a ? b : c;

var foo = a && b || c;

这两个表达式之间有什么区别吗?除了缺乏可读性之外.

*尽管您可以将foo指定为函数,然后在if语句之后执行它.



1> Miles..:

假设:

var a = false, b = '', c = 'bar';

然后:

var foo = a ? b : c; // foo == ''
var foo = a && b || c; // foo == 'bar'

这两者并不等同; 你永远不应该使用布尔运算符代替条件运算符.像其他回答者一样,我也认为条件运算符不缺乏简单表达式的可读性.



2> Marc Charbon..:

三元运算符对我来说当然是可读的.甚至比第一个例子还要多,因为简洁的逻辑代码总是比执行相同操作的许多控制代码行更容易理解.

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有