iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
JavaScript

JavaScript為什麼筆記本 系列

商學院背景半路出家。老闆說:「你去架一個網站」(這是快八年前xd),秉持著躍躍欲試的精神,結果第一件事情摸到了 FileZilla (?) 根本大誤,深知沒有 mentor 基本上就是瞎子摸象。上過不少課程,但是跟著打指令和做作品,電腦關掉以後腦袋還是一片空白。或許從「為什麼」開始理解,可能會是練好絕世武功前的起手打底。
這 30 天從 JavaScript 開發中「會用卻不知道為什麼」的問題出發,一路實驗、踩坑、訂正,把真正理解的過程記錄下來。

參賽天數 28 天 | 共 28 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 21

Day 21|連續寫三次 setCount(count + 1),為什麼不一定會加 3?

Day 20~~~ count++ 雖然真的會改 JavaScript 裡的變數,但它沒有告訴 React: 欸,這個東西改了,畫面也要跟著更新。 所以...

2026-09-24 ‧ 由 克拉克斯 分享
DAY 22

Day 22|setCount(prev => prev + 1) 裡面為什麼可以塞 function?

Day 21 最後留下了一段我以前其實會寫,但沒有真的想過的程式: setCount(prev => prev + 1) 如果把它看久一點,事情突然很怪...

2026-09-25 ‧ 由 克拉克斯 分享
DAY 23

Day 23|function、function expression、arrow function 為什麼三種?

Day 22 我終於把一件以前「會用但沒真的想過」的事情補起來: setCount(prev => prev + 1) 裡面的: prev =>...

2026-09-26 ‧ 由 克拉克斯 分享
DAY 24

Day 24|Scope 到底在限制什麼?為什麼有些變數出了大括號就消失了?

Day 23 寫到 Function declaration、function expression、arrow function。 寫著寫著,我發現一直有一個...

2026-09-27 ‧ 由 克拉克斯 分享
DAY 25

Day 25|Hoisting 真的是把程式碼搬到最上面嗎?為什麼 function 可以先用,const 卻不行?

Day 24 講 Scope 時,我們留下一個函式: sayHello() function sayHello() { console.log('Hell...

2026-09-28 ‧ 由 克拉克斯 分享
DAY 26

Day 26|外面的 function 都跑完了,裡面的 count 為什麼還記得?

Day 25 最後留了一個計數器。先不急著背 Closure 的定義,把程式接著跑下去。 function createCounter() { let co...

2026-09-29 ‧ 由 克拉克斯 分享
DAY 27

Day 27|同一個 function,為什麼換個呼叫方式,this 就變了?

Day 26 在追 Closure 時,有一件事情其實很好理解: function outer() { const name = 'Leo' retu...

2026-09-30 ‧ 由 克拉克斯 分享
DAY 28

Day 28|setTimeout(fn, 0) 都寫 0 了,為什麼還是晚點才執行?

Day 27 最後留了一個很常見的畫面: setTimeout(() => { console.log('hello') }, 1000) 以前我會...

2026-10-01 ‧ 由 克拉克斯 分享