i++的例子:
var i=1;
console.log(i); // 输出1
var a=i++;
console.log(i); //输出2
console.log(a); //输出1
++i的例子:
var i=1;
console.log(i);// 输出1
var a=++i;
console.log(i); //输出2
console.log(a); //输出2
解释
我们通过两个例子,可以看出其中不同,当使用i++赋值给a后,a的值为1,而使用++i赋值给a后,a的值为2,而两例中i最终都为2
可见:
- 使用i++时,i先将自身的值赋值给变量a,然后再自增1
- 使用++i时,i先将自身的值自增1,再将自增后的值赋值给变量a
原理:
运算符优先级
- 我们知道,++作为后置递增时,优先级为16,而作为前置递增时,优先级为15
- =作为赋值运算符时,优先级为3
- 所以,++会优先于=而执行