什麼是閉包 (Closure)?
閉包 (closure) 是程式語言的一種特性,在 JavaScript 中也扮演相當重要的角色,被廣泛應用在 JavaScript 程式庫中。許多被開發者大量使用的重要功能,也都看得到閉包的身影,舉例來說最熱門的 JavaScript 函式庫 React 中的 useState 就是透過閉包來實作。以面試的角度來說,不僅僅要了解什麼是閉包,同時也要知道閉包會有什麼應用的情景。假如你目前仍不熟閉包的概念,或不確定可以怎麼應用,千萬要在面試前弄熟。
繼續閱讀
每當提到在程式中寫註解 (comments),你大概會在網路上看到兩派人馬,有人覺得應該要寫註解;又有另一群人覺得程式碼應該要寫得夠清楚,如果有註解就代表寫不夠清楚,應該要重構而不是加註解。當然除了這極端的兩派人馬外,多數人都是在中間,部分的程式碼寫註解,但不會全部都寫。關於寫註解這件事,在《A Philosophy of Software Design》書當中也有談及。John Ousterhout 教授的觀點是,如果註解寫得好,將有效改善整體的系統設計。假如你是反註解派的人,或許可以一起來讀讀他為什麼這麼認為。
繼續閱讀
在 JavaScript 中的陣列有內建的 sort 方法,可以讓我們不用自己手寫排序算法,也能夠有高效能的排序方法可用。然而,你知道 sort 要怎麼用嗎? 在 sort 中要傳入的 compareFn 又是如何運作的? 當 compareFn 是 (a, b) => b - a 時,排序會是升序還是降序? 為什麼呢?
繼續閱讀
了解 React 生命週期不僅是學習 React 最基本的概念之一,也是面試經典問題。本文會介紹三大生命週期、以及在 Class Component 中常用的生命週期方法。
繼續閱讀
Nginx 是一個非同步框架的網頁伺服器,可以做到反向代理、負載均衡、http 快取。Nginx 比起 Apache 屬於輕量級且高併發、處理靜態檔案的效率較高、耗費的記憶體較少、負載效能好,很適合做前端伺服器使用。
繼續閱讀