首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >If-else语句短路

If-else语句短路
EN

Stack Overflow用户
提问于 2012-05-31 02:27:18
回答 2查看 3.6K关注 0票数 3

所以我知道

代码语言:javascript
复制
variable && runTrue();

真正意味着

代码语言:javascript
复制
if(variable){
    runTrue();
}

那么,是否有一种更简化的方式来编写

代码语言:javascript
复制
if(variable){
    runTrue();
}else{
    runFalse();
}

而不是if-else

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-31 02:27:18

是的,我发现这和正常的if-else是一样的

代码语言:javascript
复制
(variable) && (runTrue(),1) || runFalse();

2字符更短(仍然比没有更好),并且在jsPerf中进行了测试,通常情况下,Short-circut evaluation - false的速度比通常的方法要快。

代码语言:javascript
复制
(variable) &&           //If variable is true, then execute runTrue and return 1
(runTrue(),1) ||        // (so that it wouldn't execute runFalse)
runFalse();             //If variable is false, then runFalse will be executed.

但当然,您可以始终使用variable?runTrue():runFalse();

票数 3
EN

Stack Overflow用户

发布于 2012-05-31 03:07:36

使用条件算子 ? :的三元表达式是为这样简单的二进制选择而发明的:

代码语言:javascript
复制
function a() {alert('odd')}
function b() {alert('even')}
var foo = new Date() % 2;

foo? a() : b(); // odd or even, more or less randomly

相当于:

代码语言:javascript
复制
if (foo % 2) {
  a(); // foo is odd
} else {
  b(); // foo is even
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10826717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档