找不到这个问题的更好的标题,所以编辑建议将不胜感激。分配变量条件与内联条件检查
我想知道是否有检查条件与分配的变量和内联条件之间的差异。
例如:
选项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是我的选择,因为它更具可读性,但我想知道行为或性能有差异吗? 有没有办法测试两种选择之间的性能?
至于性能测试,如果你还没有听说过jsPerf的,这可能是最好的时刻访问该网站。有多种替代方案,它们都在浏览器中联机(例如http://jsben.ch/#/7XyeB)。 –
@WiktorZychla有趣,谢谢我不知道这一点。虽然我有时会得到不同的结果。例如:代码块1最快,然后代码块2最快 –