【前端詞典】4 個實用有趣的 JS 特性

前言前端

最近在學習的過程當中發現了我以前不曾瞭解過的一些特性,發現有些頗有趣而且在處理一些問題的時候能夠給我一個新的思路。web

這裏我將這些特性介紹給你們。性能

4 個有趣的 JS 特性學習

利用 a 標籤解析 URL優化

有的時候咱們須要從一個 URL 中提取域名,查詢關鍵字,變量參數值等,通常咱們會本身去解析 URL 來獲取這些內容。但是你或許不知道還有更簡單的方法。server

即建立一個 a 標籤將須要解析的 URL 賦值給 a 的 href 屬性,而後咱們就能很方便的拿到這些內容。代碼以下:blog

標記語句(label)教程

有的時候咱們會寫雙重 for 循環作一些數據處理,咱們有的時候但願知足條件的時候就直接跳出循環。以避免浪費沒必要要資源。ip

這個時候咱們就能夠用 label 和 continue/break 配合使用資源

:

相信你從上面兩段代碼的輸出能夠對標記語句有一個瞭解。

void 運算符

void 運算符對給定的表達式進行求值,而後返回 undefined。

因爲void會忽略操做數的值,所以在操做數具備反作用的時候使用void會更加合理。

使用 void 替換 undefined

因爲undefined並非JavaScript的關鍵字,因此咱們在賦值某個變量爲undefined時可能會有點意想不到的結果。

 

如上代碼咱們可能但願賦值爲undefined,但卻獲得了10這個莫名其妙的狀況。因此咱們可使用使用void替換undefined。

這也是爲何咱們在不少源碼中都能看到使用void替換undefined。

IntersectionObserver 是什麼?

IntersectionObserver 能夠用來監聽元素是否進入了設備的可視區域以內,而不須要頻繁的計算來作這個判斷。

因此咱們能夠用這個特性來處理曝光埋點,而不是用getBoundingClientRect().top這種更加損耗性能的方式來處理。

本身是一個五年的全棧工程師,這裏推薦一下個人前端學習交流圈:開始484而後757最後760,裏面都是學習前端的,裙子裏會不按期更新最新的教程和學習方法,有想學習web前端的,或是轉行,或是大學生,還有工做中想提高本身能力的web前端黨歡迎加入,

固然你也能夠用這個 API 來優化滾動吸頂,代碼以下:

但願這 4 個特性能夠對你有所幫助,而後點個贊在走唄。

相關文章
相關標籤/搜索