【发布时间】:2016-11-12 13:48:54
【问题描述】:
我对 if/else 语句中的条件在什么时间点进行评估感兴趣。
假设有以下示例:
if (complex condition 1) {
do something
}
else if (complex condition 2) {
do something else
}
else if (complex condition 3) {
do something else
}
else {
do anything
}
我想知道的是:是否每个复杂条件都被提前检查,解释器只是执行条件的代码部分,还是从第一个条件开始并且仅在第一个条件为假时评估第二个条件?
我有兴趣对低端移动设备进行一些优化。
【问题讨论】:
-
第二个仅在第一个为假时才被评估。我不确定您所说的“复杂条件”是什么意思,但即使像
if(x || y)这样简单的东西,如果 x 为真,也不会评估 y。您可以通过在条件中调用函数并在函数中调用 console.log() 来自己测试。 -
出于性能原因,我想避免低端移动设备必须或将提前评估任何这些复杂条件(= 除非确实需要它们)。
-
JavaScript 仅在“到达那里时”评估所有代码。
标签: javascript if-statement conditional evaluation