Chiayin's blog

【JavaScript】i++ 和 ++i 的差異如何理解?

字數統計: 470閱讀時間: 1 min
2022/10/31

在六角學院的Slack的討論大廳上看到有人詢問「i++ 和 ++i 的差異?」
因為提問者是程式語言的初學者,便思考著如何使用淺顯易動懂的解釋給對方聽。

MDN Web Docs 的描述

++x是會運算元回傳增加1後的值
x++會回傳運算元加1前的值

在某些情況下,看起來兩者最後結果都是一樣的,那他的差異性是甚麼?

我的回答

我會這樣子想。
採用以前學習二元一次方程式的概念來做比擬。

++」就是「+1」的意思。
++x」「x++」就是「x=x+1」。

x++ 的公式拆解

1
2
3
4
5
6
let x=1
let y=x++
// 1.先將x的值給y,這個時候x為1,所以y的回傳值為1。
// 2.因為x=x+1,x的值從x+1得來,所以是1+1=2,x的回傳值為2。
console.log(y) // 回傳 1
console.log(x) // 回傳 2

++x 的公式拆解

1
2
3
4
5
6
let x=1
let y=++x
// 1.先執行x=x+1,所以x=1+1等於2,x的回傳值為2。
// 2.再將得到的2賦予y,所以y的回傳值也為2。
console.log(y) // 回傳2
console.log(x) // 回傳2

因為程式邏輯和過去學習算數的概念稍有不同,將之拆解為更細部的說明,便能讓發問者聽懂囉!

得到的回饋

之前也碰過類似的問題,本想放上來詢問大家,剛好就看到了這篇。你的回答很詳細,解決了我的疑惑,感恩:祈禱

本來也是想讓自己更理解i++++i的概念才回答的,沒想到還得到很棒的回饋,內心極為高興,這就是寫程式後所得的成就感吧!希望透過這篇文章,能讓大家以更清晰的方式理解兩者的差異喔!

本文於 2021-06-05 發表在舊網站。

發佈日期:2022-10-31

更新日期:2022-10-31

CATALOG
  1. 1. MDN Web Docs 的描述
  2. 2. 我的回答
    1. 2.1. x++ 的公式拆解
    2. 2.2. ++x 的公式拆解
  3. 3. 得到的回饋