很多人都知道了 a++ 是先赋值 再加1。
++a 是先加1 再赋值!
虽然知道这个,但是还是有很多人迷糊! 这到底应该怎么理解呢!
有一个很经典的面试题
let a = 0
a = a++
console.log(a) 得 这个a 为0
let a = 0
a = ++a。
console.log(a)。得这个a为1
很多人就迷糊了! 既然a++ 是先赋值再自身加1 那为什么打印的a 还是0 呢! 它不应该变成自增为1吗
可以这么理解哈! 咱也不说运算符优先级什么的!
把a++ 和++a 看成一整体! 在它还没进行 a = a++时。 这个时候的a++整体为0! 这时候 a=0 它直接重新赋值a为0了!