little_star
2016-04-12 10:23
++a和a++ 有什么区别?
可以换个思路,不考虑两个变量,但看值。
var a = 5; alert(a++);//5 alert(a);//6 /* a 值自增1; (a++) 值与自增 1 前的 a 值 5 相等; */
var a = 5; alert(++a);//6; alert(a) ;//6; /* a 值自增1; (++a)值与自增 1 后的 a 值 6 相等; */
可以换个思路,不考虑两个变量,但看值。
var a = 5;
那么,alert(a++);弹出框内值为 5;也就是说 (a++ )的值为5 ,和此前的 a 值相等。
但是,alert(a); 弹出框内值为6;a 值在原始 a 值的基础上自增 1;
var a = 5;
alert(++a);弹出 6;
alert(a) ;弹出值也为6;
相应的 (++a)的值为6,和自增 1 后的 a 值相等。
var a1,a2,b,c;
a1 = 5;
a2 = 5;
b = a1++;
c = ++a2;
则:a1 = 6 ;a2 = 6;
但:b = 5 ; c = 6;
-------------------------
var x = 5;
var y = 5;
x = x++;
y = ++y ;
则: x = 5 ; y = 6 ;
for(var i=0;i<5;){ document.write(++i) }
这里输出的是1,2,3,4,5,因为++i是先加1再赋值
for(var i=0;i<5;){ document.write(i++) }
这里输出的是0,1,2,3,4,因为i++是先赋值再加1
运算时,++a先完成赋值并立即参与到运算,而如果是a++,就以a的初始值为准参加运算,然后a在进行赋值,a=a++;
++a先自增后取值,a++先取值后自增;前提是在分号之前
a++是先处理a,之后a自增,++a是,a先自增,然后处理a
a++ 和 ++a的相同点都是给a+1,不同点是a++是先参加程序的运行再+1,而++a则是先+1再参加程序的运行
++a 先加1在运算, a++ 运算后再自加1
一般是相等的 当赋值时有所不同 ++a 先运算后赋值 a++先赋值后运算
++a是先处理自加1,再用自加1后的值处理其他运算;a++是先用a这个值处理其他表达运算,再自加1
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题