夜行手記

Web 開發

Web development

從 JavaScript、瀏覽器到 React 與 Vue,理解畫面背後真正發生的事。

全部文章/6 篇

01

技術成長 · Web 開發 · JavaScript · 2026/09/02

JavaScript Arrow Function 是什麼?和一般 function 到底差在哪?

Arrow Function(箭頭函式)不只是把 function 換成 => 的簡寫方式,他和一般 function 在行為上也有不少差異。本篇會從 Arrow Function 的基本語法、Implicit Return、參數簡寫開始,接著比較他和一般 function 在 this、arguments、new、prototype 等方面的不同,也會回頭拆解上一篇出現過的 Currying 範例,幫助理解 Arrow Function 到底適合用在哪些情境。
閱讀全文
02

技術成長 · Web 開發 · JavaScript · 2026/09/01

JavaScript 的 this 到底指向誰?重點不是寫在哪裡,而是怎麼呼叫

JavaScript 的 this 常讓人感到混亂,因為他不像一般變數一樣沿著作用域鏈尋找,而是會根據函式的呼叫方式決定。本篇將從直接呼叫、物件方法、Callback、call()、apply()、bind()、new,一路整理到 Arrow Function 的特殊行為,並搭配程式範例說明:為什麼同一個函式換一種呼叫方式後,this 就可能指向不同的對象。
閱讀全文
03

技術成長 · Web 開發 · JavaScript · 2026/08/27

JavaScript 的 Closure 是什麼?函式離開作用域後,為什麼還記得外面的變數?

Closure 通常翻譯成「閉包」。 閉包?封閉的包?第一次看到時可能會覺得又是一個看起來很莫名其妙的東西。 但我們可以先用比較白話的方式理解: Closure 是函式保留了自己建立時的作用域關係,所以即使函式離開原本的位置,仍然可以存取當時的外部變數。
閱讀全文
05

技術成長 · Web 開發 · JavaScript · 2026/08/20

JavaScript 的 Hoisting 是什麼?提升會讓程式自己往上跑嗎?

Hoisting 通常翻譯成「提升」或「變數提升」。 JavaScript 在正式逐行執行程式以前,會先處理目前作用域中的變數與函式宣告。 不過需要特別注意的是,JavaScript 並不是真的把程式碼拿下來,再丟到檔案的最上面去。 Hoisting 比較像是一種用來描述執行結…
閱讀全文