7 個基本的 JS 函式

劉健超-J.c發表於2015-06-23

我記得早期的 JavaScript ,要完成任何事情幾乎都繞不開一些簡單的函式,因為瀏覽器提供商實現功能有所差異,而且不只是邊緣功能,基礎功能也一樣,如 addEventListenerattachEvent。雖然時代變了,但仍有一些函式是每個開發者都應該掌握的,以便於完成某些功能和提高效能。

debounce

對於高耗能事件,debounce 函式是一種不錯解決方案。如果你不對 scrollresize、和 key* 事件使用 debounce  函式,那麼你幾乎等同於犯了錯誤。下面的 debounce 函式能讓你的程式碼保持高效:

debounce 函式不允許回撥函式在指定時間內執行多於一次。當為一個會頻繁觸發的事件分配一個回撥函式時,該函式顯得尤為重要。

poll

儘管上面我提及了 debounce 函式,但如果事件不存在時,你就不能插入一個事件以判斷所需的狀態,那麼就需要每隔一段時間去檢查狀態是否達到你的要求。

Polling 在 web 中已被應用很長時間了,並在將來仍會被使用。

once

有時候,你想讓一個給定的功能只發生一次,類似於 onload 事件。下面的程式碼提供了你所說的功能:

once 函式確保給定函式只能被呼叫一次,從而防止重複初始化!

getAbsoluteUrl

從一個字串變數得到一個絕對 URL,並不是你想象中這麼簡單。對於某些 URL 構造器,如果你不提供必要的引數就會出問題(而有時候你真的不知道提供什麼引數)。下面有一個優雅的技巧,只需要你傳遞一個字串就能得到相應的絕對 URL。

a 元素的 href 處理和 url 處理看似無意義,而 return 語句返回了一個可靠的絕對 URL。

isNative

如果你想知道一個指定函式是否是原生的,或者能不能通過宣告來覆蓋它。下面這段便於使用的程式碼能給你答案:

這個函式雖不完美,但它能完成任務!

insertRule

我們都知道能通過選擇器(通過 document.querySelectorAll )獲取一個 NodeList ,並可為每個元素設定樣式,但有什麼更高效的方法為選擇器設定樣式呢(例如你可以在樣式表裡完成):

這對於一個動態且重度依賴 AJAX 的網站來說是特別有用的。如果你為一個選擇器設定樣式,那麼你就不需要為每個匹配到的元素都設定樣式(現在或將來)。

matchesSelector

我們經常會在進行下一步操作前進行輸入校驗,以確保是一個可靠值,或確保表單資料是有效的,等等。但我們平時是怎麼確保一個元素是否有資格進行進一步操作呢?如果一個元素有給定匹配的選擇器,那麼你可以使用 matchesSelector 函式來校驗:

就這樣啦,上述 7 個 JavaScript 函式是每個開發者都應該時刻記著的。有哪個函式我錯過了呢?請把它分享出來!

打賞支援我翻譯更多好文章,謝謝!

打賞譯者

打賞支援我翻譯更多好文章,謝謝!

任選一種支付方式

7 個基本的 JS 函式 7 個基本的 JS 函式

相關文章