一元操作符(單目操作符)
*遞增和遞減操作符(分前置型和后置型)
++是遞增操作符,--是遞減操作符
i++ 先賦值 后自加
i-- 先賦值 后自減
++i 先自加 再賦值
--i 先自減 再賦值
*一元加、減操作符
這兩種操作符將執(zhí)行 Number() 轉(zhuǎn)型函數(shù)功能。
區(qū)別就是 減操作符 執(zhí)行 Number() 轉(zhuǎn)型函數(shù)功能后,將得到的數(shù)轉(zhuǎn)換為負(fù)數(shù)。
var i = "45";
console.log(+i);
//console.log(-i);
下面我們舉個例子:
var a = 7;
var b=(a++)+(++a)-(--a)+(a++)+(--a)-(a++);
var c=(b--)-(--a)+(b++)+(++b)+(a++);
console.log(b);
console.log(a);
console.log(c);
我們先算b的值:b=(a++) 計算a++的值先賦值再后a再自加,(a++)=a=7,此時a經(jīng)過自加得到a=8;
(++a)是先自加在a=9再賦值所以(++a)=9;
(--a)是a先自減a=8再賦值(--a)=8;
(a++)是先賦值(a++)=8再自加a=9;
以此類推得到(--a)=8;(a++)=8;
此時的a=9;由此得到b=7+9-8+8+8-8=16;
然后我們再計算c的值:
c=(b--)一樣的道理,此時先賦值(b--)(這里是前面計算b的值)=16,此時b=15;
(--a)先計算a(這里的a是前面計算b最后a等于的值)=8,再賦值(--a)=8;
以此類推得到(b++)=15 b=16;(++b)=17 b=17;(a++)=8
a=9;
c=16-8+15+17+8=48;
****注意a b的值都是我們最終經(jīng)過所有運算以后得到的值,所以a=9;
b=17;
c=48;