當前位置:
首頁 > 最新 > 我所不知的JS

我所不知的JS

第一時間關注程序猿(媛)身邊的故事

幾天前在閱讀 MDN 文檔時我發現了一些我從來不知道的 JS 特性和 API。 下面是一份簡短的清單, 無論有用不有用——學習 JS 的道路似乎是沒有盡頭的。

標籤語句

在 JS 中,你可以對 for 循環和代碼塊起名字... 誰知道呢(顯然我不知道)! 稍後你可以在for 循環中對該代碼使用 break 或 continue 語句, 同時在代碼塊中也可以使用 break。

這是一個對代碼塊命名的例子,在代碼塊中只能使用

"void" 操作符

這之前我一直以為我掌握了所有的操作符,直到我看到了這個 從 1996 年就有.的操作符。 所有瀏覽器都支持也非常的好理解, 用 MDN 的話:

void 操作符執行表達式之後同時返回 undefined

這樣可以寫出立即執行函數的另一種形式:

對 void 的使用需要注意的是,表達式的執行結果是 空(undefined)!

你可以將 async 與 void 相結合, 即可作為代碼中的非同步入口點:

逗號操作符

在閱讀完逗號表達式之後, 我並沒有感到我完全理解了它是如何工作的。 引用 MDN 的話:

逗號操作符執行其所有的操作數(從左到右)並返回最後一個操作數的結果。


逗號操作符的最後一個結果總是作為條件操作符的結果。 所以你可以在這之前放入任意數量的表達式, 在下面的例子中,我在返回的布爾值之前都放了一句 console log。

國際化 API

在當前國際化要做好很難, 幸運的是,在大部門瀏覽器中都有 較好的 API 支持。 其中我所喜歡的其中一項就是日期格式化, 看下面的例子。

管道操作符

在撰寫本篇文章時,此功能僅在 Firefox 58+ 使用參數開啟, 然而在 Babel 中已經有一個針對此操作符提案的 插件了。 看起來非常好,我很喜歡!

值得注意的


原子操作帶來了可預測的讀寫結果,特別是當數據在多個線程中共享時,下一個操作會等待其他操作完成之後才會被執行。 對於主線程和其他 WebWorker 之間保持數據同步來說非常有用。

我很喜歡其他編程語言中的原子特性,例如 Java 中。 我覺得在之後使用 WebWorker 將事務從主線程中轉移出來之後會使用得更多。


在了解到這個功能之後節省了 .bind() 的使用,這個特性從一開始就有了。


在之前我在 HTML 元素上使用自定義數據屬性 data-*,但我渾然不知有 API 能夠輕鬆的做讀取。 拋開一些特殊的命名限制(看標題鏈接),其基本上就是橫線隔開在 JS 中使用時則用駝峰規則。 所以屬性 data-birth-planet 在 JS 中會變成 birthPlanet。

讀取:

結 語

希望你能在JS中像我一樣發現新東西。Happy New 2018!

本文轉載自:眾成翻譯

譯者:NimitzDEV

翻譯鏈接:http://zcfy.cc/article/js-things-i-never-knew-existed

- THE END -


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序人生 的精彩文章:

明明可以靠顏值 卻用代碼把人類送上了月球的女人——Margaret Hamilton

TAG:程序人生 |