3
# 首先不管在那一個現代化的 source code 當中我們常常會看到類似的寫法,
# 但是他有什麼不同, 我們這邊就用一個簡單的例子來做說明
# 首先我們先來看一段程式碼, 這邊就先採用 python 來撰寫範例..... 等等
# python 不支援 a++ 這樣的語法, 只能用 a += 1
# 好吧!!! 這邊就用 javascript 來當範例好了
nano jsdemo.js
# 內容如下
var A = 0;
var B = 0;
A++;
++B;
console.log("A: " + A + ", B: " + B)
A = 0;
B = 0;
AA = A++;
BB = ++B;
console.log("AA: " + AA + ", BB: " + BB)
# 存檔後, 直接執行
node jsdemo.js
# 我們看到輸出的是
A: 1, B: 1
AA: 0, BB: 1
PS: 如果你執行 node jsdemo.js 出錯, 那代表你的環境沒有 node.js 的執行環境. 請先進行設定後再回來執行
OK! 那麼為什麼 A 是 1. B 是 1, 但是 AA 卻是 0, BB 仍然是 1 呢?
因為 A++ 代表 A = A + 1 的執行會在這一行結束後才進行.
AA = A++ => AA = (0), A = 1;
而 ++B 則代表 B = B + 1 先執行後再帶入這一行的方程式
BB = ++B => BB = (0 + 1) => BB = 1, B = 1
有點類似 ++B => (B = B + 1), 括弧內要先執行的意思
# 以下 js code 你可以自己試試看觀念是否正確喔!!
var A = 1;
var B = 1;
var AA = 0;
var BB = 0;
AA = A++ + A++;
BB = ++B + B++;
console.log("AA: " + AA + ", BB: " + BB)
# 結果印出如下
AA: 3, BB: 4
# 以上為什麼是 3, 為什麼是 4. 解說如下
AA = (1) + (2) = 3 此行結束時的 A 已成為 3
BB = (2) + (2) = 4 此行結束時的 B 已成為 3
參考資料: https://ithelp.ithome.com.tw/articles/10192800