遞增和遞減操做符直接借鑑自C,並且各有兩個版本:前置型 (遞增 ++i ,遞減 --i )和 後置型 (遞增 i++ ,遞減 i-- )。書本上對二者的定義是:前置型應該位於要操做的變量以前,然後置型則應該位於要操做的變量以後。what?怎麼那麼難理解,換一種通俗易懂的語言去描述應該是咋樣的......,結合提供代碼,一頓白眼.....
前置型 (遞增 ++i ,遞減 --i ): 不就是先自身計算,再賦值給變量(先計算本身身上增長,減小了多少錢,再把它存到本身的銀行卡里或者還給債主);
後置型 (遞增 i++ ,遞減 i-- ):不就是先將自身的值賦值給變量,而後再自身計算(先把本身本來身上的錢存到本身的銀行卡里或者還給債主,而後在計算在原來基礎上本身增長,減小了多少錢);
懂了沒?假設還不懂,那如今開始給你看看兩種方式下,你的錢是怎麼流通的哈:
1、前置型(遞增++i,遞減--i)javascript
假設你有100塊(變量i=100) ,那麼前置遞增爲 ++i 。
var i = 100;
alert(i); => 100
++i; => 101 先計算本身身上增長了多少錢
alert(i); => 101 再把它存到本身的銀行卡里或者還給債主
也至關於以下的操做效果:
var i = 100;
i=i+1; => i=100+1=101;
執行前置遞增和遞減操做時,變量的值都是在語句被求值之前改變的。(在計算機科學領域中,這種狀況一般被稱做副效應)
,看下面的例子:java
var age = 29;
var anotherAge = --age + 2;
console.log(age) // 28 (age = age - 1)
console.log(anotherAge); // 30 (anotherAge = age - 1 + 2)ui
這個例子中變量 anotherAge
的初始值等於變量 age
的值前置遞減( age = age - 1
)以後加上 2
。就是age自身先執行減法操做(age=age-1), age 的值變成了28
,而後再加上 2
,值就是30。spa
另外在JavaScript運算符中,前置遞增( ++i
)和遞減( --i
)與執行語句的優先級相同,所以整個語句會 從左至右被求值 。再來看一個示例:code
var num1=2;ip
var num2=20;console
var num3=++num1 + num2;class
var num4=num1+num2;基礎
alert(num1); // 3計算機科學
alert(num3); // 23
alert(num4); // 23
在這裏,num3等於23,是由於num1先自身執行了加法操做才與num2相加。而變量num4也等於23,是由於相應的加法操做也使用了num1自身執行了加法操做後的值。
2、後置型(遞增i++,遞減i--)
假設你有100塊(變量i=100) ,那麼前置遞增爲 ++i 。
var i = 100;
alert(i); => 100
i++; => 100 先把本身本來身上的錢存到本身的銀行卡里或者還給債主
alert(i); => 101 而後在計算在原來基礎上本身增長,減小後一共還有多少錢
把遞增操做符放在變量後面並不會改變語句的結果,由於遞增是這條語句的惟一操做。可是當語句中還包含其餘操做時,區別就會不同了。看下面的例子:
var num1=2;
var num2=20;
var num3=num1++ + num2;
var num4=num1+num2;
alert(num1); => 3
alert(num3); => 22 // var i; i=num1=2; num1=num+1=3 ; num3=i + num2;
alert(num4); => 23 // num1+num2;
1.前置遞增(++): 在變量的前面,先自身執行加法操做後在賦值(++i);
2.後置遞增(++): 在變量的後面,先賦值後在執行加法操做(i++);
3.前置遞減(--): 在變量的前面,先自身執行減法操做後在賦值(--i);
4.後置遞減(--): 在變量的前面,先賦值後在執行減法操做(i--);
總結,但願這篇文章對你理解遞增和遞減(++i,--i 和 i++,i-- 的區別)有幫助,分享技術,分享快樂!