javascript - 如果 JavaScript 中 if block 返回,还需要 else 吗?

标签 javascript performance if-statement

我目前正在尝试从 JavaScript 程序中挤出最后一毫秒,该程序以每秒 10 倍的速度在事件监听器上触发。我正在努力清除所有的垃圾。当 if block 的唯一目的是在 true 时返回某些内容时,跟随 else ifelse 是否有任何优势code>,或者我认为我放弃了else是正确的。

例如。

// with else
function withElse () {
    if (foo) {
        return foo;
    } else if (bar) {
        return bar;
    } else {
        return baz;
    }
}

// without else
function withoutElse () {
    if (foo) return foo;
    if (bar) return bar;
    return baz;
}

最佳答案

不,没有。为了清晰起见,您可以选择使用它,但这不是必需的(您可以选择不使用它以避免冗余;这完全是一种风格选择)。

(同样,为了清楚起见,您可以选择始终使用该 block - {...} - 但这也不是必需的。)

从性能的 Angular 来看,这些事情都不重要。

还有第三个选择需要考虑:

function withElse () {
    var rv;

    if (foo) {
        rv = foo;
    } else if (bar) {
        rv = bar;
    } else {
        rv = baz;
    }

    return rv;
}

更详细,但它的优点是函数在单个位置退出,这对于调试很有用。当然,它有一个缺点……更加冗长。 :-)

在一个简单的引擎上,第三种选择可能会带来很小很小的性能损失;对于现代浏览器中的优化引擎,我非常怀疑它的作用。

关于javascript - 如果 JavaScript 中 if block 返回,还需要 else 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25823784/

相关文章:

JavaScript、变量和 if/else 语句

javascript 文本编辑器 - 如何捕获选择

javascript - 是否可以传递带有 vars 的 json 对象作为 angularjs 指令参数?

java - 使用编码算法在 RAM 中存储 4x4 2D 矩阵,以实现最小的 RAM 空间使用

c - 让 fgets 将字符保存到 C 中的变量中

java - 如果两次评估语句是否短路?

javascript - 在离线应用程序上使用 Javascript 读取 Xml?

javascript - 可以具有相同 "name"的输入属性

javascript - Chrome 速度追踪器是否只允许在开发人员的构建中使用?

c++ - Dll 函数调用比普通函数调用更快?