无法为此问题找到更好的标题,因此我们将非常感谢编辑建议。
我想知道使用分配的变量检查条件和内联条件之间是否有区别。
例如:
选项 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/