2
本文讨论限于js

之前关于js里面前置型递增、递减的关系一直搞不清楚,说到这里可能会有好多人对这两个词陌生,我换个说法,后置型递增(i++),前置型递增(++i)。举一反三,递减也一样。以下均已递增为例。
其实后置型跟前置型的区别在于操作符所在的语句,也就是所在的语句只有单纯的递增或递减操作。返回结果是没有区别的,例如:

let num1 = 0;
let num2 = 0;
num1++;
++num2;
console.log(num1);      //输出结果1
console.log(num2);      //输出结果1

但是当包含他们的语句还有其他操作的时候,情况就不一样了,例如:

let num1 = 2;
let num2 = 3;
let num3 = 2
let num4 = num2 + num1++;
let num5 = num2 + ++num3;

console.log(num4);      //输出5
console.log(num5);      //输出6

看出来区别了吗,其实区别就在于:

执行前置递增和递减操作时,变量的值都是**在语句被求值以前**改变的,而执行后置型递增和递减操作时,变量的值都是**在语句被求值以后**改变的。


ayanamirei0
17 声望4 粉丝

下辈子不做人了,做只猫吧...