javascript的带操作符的赋值运算
看犀牛书发现的问题
下面两个表达式
表达式一 data[i++] *= 2;
表达式二 data[i++] = data[i++] * 2;
var data = [7,8,9]; var i = 0; data[i++] *= 2;
结果
> data[0] 14 > data[1] 8 > data[2] 9 > i 1
var data = [7,8,9]; var i = 0; data[i++] = data[i++] * 2;
结果
> data[0] 16 > data[1] 8 > data[2] 9 > i 2
理解一波第二个表达式
https://www.imooc.com/wenda/detail/453253
-
[]内运算最先执行,先做左侧[]后右侧[]
-
左侧取先第一次用i值为data[0],轮到右则[],会再次取i值,而此时i值为左侧i++计算后的值,即i为1
-
故作乘法运算时为data[0] = data[1] *2
-
然后执行右侧乘法运算,将结果结data[0]
-
后续再打印i值时,i的结果是上自增后的值2
----保持谦虚保持清醒