<分区>
以下两个片段之间是否有任何区别,或者有任何理由使用一个而不是另一个?
if (foo) {
bar();
}
foo && bar();
标签 javascript
<分区>
以下两个片段之间是否有任何区别,或者有任何理由使用一个而不是另一个?
if (foo) {
bar();
}
foo && bar();
最佳答案
第二种形式称为 short-circuit evaluation结果与第一种形式完全相同。然而,第一种形式更具可读性,应优先考虑可维护性。
这种类型的短路评估经常出现在 if 语句中,其中右手是有条件地评估的。请参见下面的示例; bar 仅在 foo 计算结果为真时计算。
if (foo && bar()) {
// ...
}
关于javascript - "if (foo) bar();"和 "foo && bar();"之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17907997/