Featured image of post Javascript 中,Map、Set、WeakMap 和 WeakSet 的區別?

Javascript 中,Map、Set、WeakMap 和 WeakSet 的區別?

ES6 推出了 Map 物件,讓開發者可以透過這個特製資料結構進行鍵值對(key-value pairs)的操作。然而 JavaScript 原始物件(plain object)就可以用來做鍵值對的操作,為什麼還需要 Map 物件呢? Map 物件解決了什麼問題?那與 Set 又有什麼不同呢?本篇來詳細說明一下。

Featured image of post 面試常見的瀏覽器問題(二) - 事件委派、捕獲、冒泡

面試常見的瀏覽器問題(二) - 事件委派、捕獲、冒泡

當使用者與瀏覽器互動時,會觸發各類不同的事件 (event),例如常見的點擊 (click)、滑動 (scroll)。我們可以透過 JavaScript 的事件處理器 (handler),來處理這些事件。讓我們能在事件觸發時,做出我們要的效果,例如點擊某個按鈕,觸發某個邏輯。針對瀏覽器事件,最常見的考題之一,便是事件委派、事件捕獲、事件冒泡,是很常見的面試考題。以下將用第一人稱的擬答,來回答「請說明瀏覽器中的事件委派、捕獲、冒泡」這個問題。

Featured image of post 面試常見的瀏覽器問題(一) - HTTP caching 機制

面試常見的瀏覽器問題(一) - HTTP caching 機制

當我們已經跟後端請求過某個資源,例如某筆資料或某張圖片,下一次再次請求時,如果該資源沒有改變,這時再次請求會相對浪費網路頻寬;反之,如果第一次請求來的資源已經被存下來,那麼下次請求時,可以直接用該資源,這樣可以減少不必要的請求。而這也是 caching 的概念。