我想知道是否将对象创建放在if
中,即使if
不正确,它也会占用资源吗?
例如,在以下代码中:
if (foo) {
doSomething({
option1: aVeryLongCallToGetThisValue(),
option2: idem()
});
}
如果foo
为false,JS是否会对其进行优化并跳过包含option1和option2的对象的创建(此代码段应该被多次调用)?此外,option1
和option2
取决于上下文(想象一个传递给aVeryLongCallToGetThisValue
的变量,所以我不能事先计算一次。
答案 0 :(得分:0)
如果
2. Decimal Sum = Convert.ToDecimal(MITTRA.Compute("SUM(Convert(Min_Weight,'System.Decimal'))", string.Empty)); 3. Decimal Sum = Convert.ToDecimal(MITTRA.Compute("SUM(Convert(Min_Weight,'System.Decimal'))", ""));
为假,JS将对其进行优化
与其说是优化,还不如说是基本的执行语义。也就是说,条件执行就是foo
所做的。如果条件不成立,则if
主体中的所有语句均不会执行,并且其效果也不会发生。
在所有编程语言中都是如此。这是一个非常基本的功能。