乐趣区

关于前端:js-前置型和后置型递增递减的关系

本文探讨限于 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

看进去区别了吗,其实区别就在于:

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

退出移动版