javascript - 分配变量的条件与内联条件检查

标签 javascript variables conditional-statements variable-assignment

无法为此问题找到更好的标题,因此我们将非常感谢编辑建议。

我想知道使用分配的变量检查条件和内联条件之间是否有区别。
例如:

选项 1:

// inline conditions check
function isSomething(){
    return (1 > 2 || 'a' == 'a' || 2 < 4) || 
           (55 == 1 || (32 > 4 || 'a' == 'a') && 6 > 2) || 
           ('abc' != 'bca' && 3 == 3);
}

选项 2:

// pre assigned variables condition check
function isSomething(){
    const conditionA = 1 > 2 || 'a' == 'a' || 2 < 4; // some complex condition
    const conditionB = 55 == 1 || (32 > 4 || 'a' == 'a') && 6 > 2; // some complex condition
    const conditionC = 'abc' != 'bca' && 3 == 3 // some complex condition

    const result = conditionA || conditionB || conditionC;
    return result;
}

似乎在选项 2 中它必须检查所有 3 个条件,但在选项 1 中理论上它可以在第一次检查是否为 true 后返回。

显然选项 2 是我的选择,因为它更具可读性,尽管我想知道行为或性能是否有差异? 有没有办法测试这两个选项之间的性能?

最佳答案

如果您想将短路求值的优点与可读性和命名变量结合起来,那么

function isSomething(){
  const conditionA = () => 1 > 2 || 'a' == 'a' || 2 < 4;
  const conditionB = () => 55 == 1 || (32 > 4 || 'a' == 'a') && 6 > 2;
  const conditionC = () => 'abc' != 'bca' && 3 == 3;

  const result = conditionA() || conditionB() || conditionC();

  return result;
}

关于javascript - 分配变量的条件与内联条件检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43650436/

相关文章:

javascript - AngularJs 工厂下的独立函数

swift - 如何从方法内部更新类变量,以便该变量对 Swift 中的其他类可见?

windows - 批处理变量集,但之后立即变为空白

variables - ansible:从主机获取网络IP

javascript - if 的多个条件

multithreading - C/C++ 和其他语言中的条件变量使用模式

javascript - 下拉项目文本更改选择

Javascript 将用户的输入存储到二维数组中

javascript - 表单重置后立即执行代码

javascript - 这个 eval 条件的目的是什么?