说明
本文基于 ES5 记录
学而不思则罔,思而不学则殆。既学也思,不总结也白费。
学而时习之,温故而知新。
学习使我快乐。
文中如有错误,还望不吝赐教,感激不尽!
JS 关于 a++ 和 ++a 的理解
-
a++
var a = 1;
var b = a++;
/*
先拆分代码
变量 a 、变量b 、表达式 a++
表达式 a++ 可以理解成 a = a+1
标量在前,先赋值再
先给变量b 赋值为a当前的值
b = a;
变量a 在进行自增计算
a = a+1;
*/
console.log(b,a) // 1,2
-
++a
var a = 1;
var b = ++a;
/*
先拆分代码
变量 a 、变量b 、表达式 ++a
表达式 ++a 可以理解成 a = a+1
加号在前,先计算再赋值。
先给变量a 进行自增计算
a = a+1;
再给变量b 赋值为a计算后的值
b = a;
*/
console.log(b,a) // 2,2
总结
无论表达式 a++ 和 ++a 自身的结果如何,a 的值都会 +1
不同的是:
表达式 a++ 返回的值是 a
表达式 ++a 返回的值是 a+1
上面代码的理解不一定正确,真正影响 b 的值还是表达式返回的结果,这样理解只是加深记忆。