不理解这个javascript方程式

not understanding this javascript equation

本文关键字:方程式 javascript 不理解      更新时间:2023-09-26

Em。我在这里看宽松方程式:

var easing = function( t, b, c, d ) {
   return c * ( t /= d ) * t * t * t + b;
}

所以大概可以这样写:

var easing = function( t, b, c, d ) {
   return c * ( t = (t/d) ) * t * t * t + b;
}

还是像这样?嗯。。不确定这个:

var easing = function( t, b, c, d ) {
   return c * t = c * (t/d) * t * t * t + b;
}

这个等式究竟是如何被javascript解析的,我的意思是,我们得到:

返回数字=数字;

wtf?这是如何处理的。

假设表达式是从左到右求值的,则可以通过以下步骤简化表达式:

1(

var easing = function( t, b, c, d ) {
   return c * ( t = (t/d) ) * t * t * t + b;
}

2(

var easing = function( t, b, c, d ) {
   t = t/d;
   return c * t * t * t * t + b;
}

3(

var easing = function( t, b, c, d ) {
   return c * Math.pow(t/d, 4) + b;
}

Js代码报价:http://jsfiddle.net/caGWz/

当赋值表达式出现在较大的表达式中时,其计算结果为右侧操作数的值。因此,在这种情况下,子表达式( t /= d )在整个表达式中取值( t / d )。此外,由于( t /= d )是括号中最左边的子表达式,因此首先对其求值(由于标准的PEMDAS操作顺序(,因此t在表达式的其余部分取值( t / d )