使用Java语言三元运算作为结果

时间:2019-10-13 18:34:18

标签: javascript

如果我结合这2条语句:

x = 1+1;
y = (x<1)? x : 0;

成为一个陈述:

z = (1+1<1) ? 1+1 : 0;

是否对评估进行了缓存,以致不会影响性能?

提出了另一种方法,是否有一种方法可以使用一个变量来使用所计算的值(如果满足条件的话),或者如果不满足,则设置一个值?

1 个答案:

答案 0 :(得分:1)

  

是否对评估进行了缓存,以致不会影响性能?

否,您已复制了代码,因此它将被评估两次。 JS通常不会执行任何common subexpression elimination

  

有没有一种方法可以使用一个变量来使用计算出来的值(如果满足条件的话),或者如果不满足,则设置一个值?

否,除了使用函数外(内部可以多次引用其参数)。假设您在写<= 0时的意思是< 1,例如做

var y = Math.max(1+1, 0);