轻分享i++ && ++i

190 阅读1分钟

新人可能弄不明白++i和i++的区别,其实很简单,这两个都是自增运算符,区别在于:

++i表示,i自增1后再参与其它运算;而i++ 则是i参与运算后,i的值再自增1。

举个梨子:

let i, j, k; 

i = 1
j = ++i

i = 1
k = i++

console.log(i) // 2
console.log(j) // 2
console.log(k) // 1

这里计算前将i设为1,计算j时,先对i进行自增,再赋值给j;计算k时,先赋值给k,再对i自增。记忆也很容易,++在前面就先自增,在后面就先赋值。

大多数场景下,两者并无差别,有说法是++i的效率是大于i++,但这点效率其实无关紧要。一般的习惯是用i++,比较符合人的直觉。

至于i+++j这种面试题,那就是运算符优先级的问题了。