本期導讀:本期我為大家帶來兩篇原創文章:一篇JavaScript中使用自然語言,為大家開豁一下前端眼界,一篇jsrsa前端加簽實踐,這個jsrsasign-latest-all-min.js庫涵蓋了大多數前端加密加簽的應用。語言基礎專題為大家帶來阮老師的JavaScript內存泄漏教程,還有來自AlloyTeam的JS定時器與執行機制解析、Canvas繪制列表。工具框架推薦大家閱讀Babel的原理與React PWA如何消除各類性能瓶頸。文末是使用WebGL實現的水面特效實驗,歡迎賞鑒。
原創專題
1) Nlp_compromise在JavaScript中使用自然語言 @吳掌雄
NLP自然語言處理,涌現了很多技術框架,當中不乏前端JavaScript實現的框架:nlp-compromise.js,本文為大家介紹自然語言處理的基本原理與nlp-compromise.js的調用例子,以及應用場景。
2) jsrsa前端加簽實踐 @吳掌雄
對于前端JavaScript加簽方法有很多種,本文為大家分享一下調用jsrsasign-latest-all-min.js庫實現jsrsa加簽,以及如何把該js庫遷移到微信小程序上運行。
語言基礎
1) JavaScript 內存泄漏教程 @阮一峰
什么是內存泄漏?
程序的運行需要內存。只要程序提出要求,操作系統或者運行時(runtime)就必須供給內存。對于持續運行的服務進程(daemon),必須及時釋放不再用到的內存。否則,內存占用越來越高,輕則影響系統性能,重則導致進程崩潰。
2) JavaScript定時器與執行機制解析 @TAT.云中飛揚
瀏覽器(或者說JS引擎)執行JS的機制是基于事件循環。
由于JS是單線程,所以同一時間只能執行一個任務,其他任務就得排隊,后續任務必須等到前一個任務結束才能開始執行。
為了避免因為某些長時間任務造成的無意義等待,JS引入了異步的概念,用另一個線程來管理異步任務。
3) Canvas繪制列表的嘗試 @TAT.Cson
為什么嘗試使用Canvas繪制列表?使用canvas繪制列表的好處在于頁面只有一個dom元素,這樣對于大量dom元素組成的列表來說,無疑更節省頁面內存。
本文將一步一步分析,如何實現一個canvas繪制的長列表。
工具框架
1) 剖析Babel——Babel總覽 @TAT.dorsywang
Babel使用的引擎是babylon,babylon并非由babel團隊自己開發的,而是fork的acorn項目,acorn的項目本人在很早之前在興趣部落1.0在構建中使用,為了是做一些代碼的轉換,是很不錯的一款引擎,不過acorn引擎只提供基本的解析ast的能力,遍歷還需要配套的acorn-travesal, 替換節點需要使用acorn-,而這些開發,在Babel的插件體系開發下,變得一體化了
2) 大型高性能React PWA如何消除各類性能瓶頸? @尾尾
本文旨在幫助讀者了解,在全球規模最大的React.js PWA之一——Twitter Lite當中,是如何消除各類常規與罕見之性能瓶頸的。
前端視界
1) Surface @小魚
使用WebGL實現的水面特效實驗,可放入一張照片,使用鼠標觸動水面會有奇特效果。