别比比
2019-01-27 15:13
实在是不理解 执行表达式之前+1 or -1 什么是表达式。 还有我想的答案 abc =3 4 3 ab=3 4 完完全全 和提交的答案不一样。求大神具体帮我说一下,怎么个运算法。谢谢~
我只能解释一部分,抱歉,作为探讨吧,第一个值,
理想是3,实际输出了4,是因为,++操作符自动赋值
举例说 a++ 同等于 a=a+1 等于 a+=1,
所以你在b = a++的时候就相当于 b= (a =a+1)或 b= (a +=1)括号是因为++的优先级
然后c 也就不用说了 因为现在的 a = 4,然后下一步
var a = 3相当于给 a 重新赋值,但第二局b = ++ a 又一次改变了 a 的值,
所以输出了 a : 4 b: 4
至于++a,a++的区别,关系到更深层次,变量的进栈出栈赋值,这里我也不是很懂,如果是新手的话先不要太过深究,我是新手,若有错误,欢迎大佬指教
++a eg: a=1 ,b=++a 那么 b=2;//先加为敬,相当于b = a; a = a + 1;
a++ eg: a=1 ,b=a++ 那么 b=1;//运行过一次才加,相当于a = a + 1; b = a;
这个自增/自减在循环里比较体现出
在js基础里讲述过变量可重复赋值
上述 var a=3; var b=a++; var c=a;
一开始a=3,b=a++的时候b=3,原因是a++运行过一次才加
b=a++这条运行后那么a=4了
在c=a时那么c=4;
所以输出 4 3 4
var a=3; var b=++a;
a又重新等于3了,b=++a,那么b=4,++a是先加,那么a也就执行过了等于4
所以输出 4 4
JavaScript进阶篇
468194 学习 · 21891 问题
相似问题