JavaScript运算符:递增和递减,++i,--i 和 i++,i-- 的区别

递增和递减操作符直接借鉴自C,而且各有两个版本:前置型 (递增 ++i ,递减 --i )和 后置型 (递增 i++ ,递减 i-- )。书本上对两者的定义是:前置型应该位于要操作的变量之前,而后置型则应该位于要操作的变量之后。what?怎么那么难理解,换一种通俗易懂的语言去描述应该是咋样的......,结合提供代码,一顿白眼.....

前置型 (递增 ++i ,递减 --i ): 不就是先自身计算,再赋值给变量(先计算自己身上增加,减少了多少钱,再把它存到自己的银行卡里或者还给债主);

后置型 (递增 i++ ,递减 i-- ):不就是先将自身的值赋值给变量,然后再自身计算(先把自己原本身上的钱存到自己的银行卡里或者还给债主,然后在计算在原来基础上自己增加,减少了多少钱);

懂了没?假设还不懂,那现在开始给你看看两种方式下,你的钱是怎么流通的哈:

一、前置型(递增++i,递减--i)

假设你有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;

执行前置递增和递减操作时,变量的值都是在语句被求值以前改变的。(在计算机科学领域中,这种情况通常被称作副效应)

,看下面的例子:

var age = 29;

var anotherAge = --age + 2;

console.log(age)       // 28 (age = age - 1)

console.log(anotherAge); // 30 (anotherAge = age - 1 + 2)

这个例子中变量 anotherAge的初始值等于变量 age 的值前置递减( age = age - 1 )之后加上 2 。就是age自身先执行减法操作(age=age-1), age 的值变成了28,然后再加上 2,值就是30。

另外在JavaScript运算符中,前置递增( ++i )和递减( --i )与执行语句的优先级相同,因此整个语句会 从左至右被求值 。再来看一个示例:

var num1=2;

var num2=20;

var num3=++num1 + num2;

var num4=num1+num2;

alert(num1); // 3

alert(num3);       // 23

alert(num4); // 23

在这里,num3等于23,是因为num1先自身执行了加法操作才与num2相加。而变量num4也等于23,是因为相应的加法操作也使用了num1自身执行了加法操作后的值。

二、后置型(递增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-- 的区别)有帮助,分享技术,分享快乐!