javascript - 这些 JS 条件语句在功能上等价吗?

标签 javascript if-statement ternary-operator

关于条件 if/else 语句,以下示例功能等效吗?

function isEntering() {
    if (this.stage === 'entering') {
        return true;
    } else {
        return false;
    }
}

function isEntering() {
    if (this.stage === 'entering') {
        return true;
    } return false;
}

function isEntering() {
    if (this.stage === 'entering') {
        return true;
    } 
}

isEntering = (this.stage === 'entering') ? true : false;

如果是这样,我会使用最简洁的选项。但前提是这四个功能在功能上是等效的。

最佳答案

如果expr是一个 bool 表达式,就像这里一样,那么就不需要写

if (expr) return true;
else return false;

或者写

if (expr) x = true;
else x = false;

或者永远写

expr ? true : false

因为 expr 是一个 bool 表达式,所以可以直接返回或赋值:

return expr;

x = expr;

最简洁的替代方案是您没有给出的:

function isEntering() { return this.stage === 'entering'; }

关于javascript - 这些 JS 条件语句在功能上等价吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44830141/

相关文章:

javascript - 删除循环中的动态图像

java - if-else 结构中的不可访问代码

javascript - if 语句发生变化

java - 简化java if语句

javascript - 如何避免嵌套的三元运算符

Java 三元运算符函数重载

javascript - 三元运算符不起作用,我可以将(这个或那个)作为表达式吗?

javascript - 没有提交表单的bootstrap html点击按钮

javascript - 如何从 Datepicker 中的代码更改时间?

javascript - 如何获取angularjs中的对象来替换jquery的$.fn