当第一个条件返回true时,具有多个“或”运算符的“ if”语句是否退出,还是对所有条件都进行了评估?
即您的条件顺序重要吗?
示例场景:
具有if语句的shouldComponentUpdate()函数和评估的条件在成本上有所不同。
条件的顺序(从最便宜的到第一个)是否有望改善性能,或者即使第一个条件返回true,整个if语句也会得到评估?
例如:
假设以下形式的if语句:
if ( (this.props.value != nextProps.value) || (deepDiffer(object1, object2) )
如果
(this.props.value != nextProps.value)
返回true
,代码是否仍将评估deepDiffer
?还是会立即输入if语句并执行条件代码? 最佳答案
这是Javascript,所以是的,当第一个条件为true时就会退出。
根据MDN:
当逻辑表达式从左到右求值时,将对其进行测试
使用以下规则进行可能的“短路”评估:
错误&&短路评估为错误。
真实||短路评估为真。
逻辑规则保证这些评估总是正确的。请注意,以上表达式的任何部分均不进行评估,因此任何一侧
这样做的效果不会生效。
关于javascript - react 本地“如果”语句的行为?提前退出还是全面评估?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57294221/