本期導(dǎo)讀:本期我為大家?guī)韮善瓌?chuàng)文章:一篇JavaScript中使用自然語言,為大家開豁一下前端眼界悲雳,一篇jsrsa前端加簽實(shí)踐,這個(gè)jsrsasign-latest-all-min.js庫涵蓋了大多數(shù)前端加密加簽的應(yīng)用香追。語言基礎(chǔ)專題為大家?guī)砣罾蠋煹腏avaScript內(nèi)存泄漏教程合瓢,還有來自AlloyTeam的JS定時(shí)器與執(zhí)行機(jī)制解析、Canvas繪制列表透典。工具框架推薦大家閱讀Babel的原理與React PWA如何消除各類性能瓶頸晴楔。文末是使用WebGL實(shí)現(xiàn)的水面特效實(shí)驗(yàn),歡迎賞鑒峭咒。
原創(chuàng)專題
1) Nlp_compromise在JavaScript中使用自然語言 @吳掌雄
NLP自然語言處理税弃,涌現(xiàn)了很多技術(shù)框架,當(dāng)中不乏前端JavaScript實(shí)現(xiàn)的框架:nlp-compromise.js凑队,本文為大家介紹自然語言處理的基本原理與nlp-compromise.js的調(diào)用例子则果,以及應(yīng)用場(chǎng)景。
2) jsrsa前端加簽實(shí)踐 @吳掌雄
對(duì)于前端JavaScript加簽方法有很多種顽决,本文為大家分享一下調(diào)用jsrsasign-latest-all-min.js庫實(shí)現(xiàn)jsrsa加簽短条,以及如何把該js庫遷移到微信小程序上運(yùn)行。
語言基礎(chǔ)
1) JavaScript 內(nèi)存泄漏教程 @阮一峰
什么是內(nèi)存泄漏才菠?
程序的運(yùn)行需要內(nèi)存。只要程序提出要求贡定,操作系統(tǒng)或者運(yùn)行時(shí)(runtime)就必須供給內(nèi)存赋访。對(duì)于持續(xù)運(yùn)行的服務(wù)進(jìn)程(daemon),必須及時(shí)釋放不再用到的內(nèi)存。否則蚓耽,內(nèi)存占用越來越高渠牲,輕則影響系統(tǒng)性能,重則導(dǎo)致進(jìn)程崩潰步悠。
2) JavaScript定時(shí)器與執(zhí)行機(jī)制解析 @TAT.云中飛揚(yáng)
瀏覽器(或者說JS引擎)執(zhí)行JS的機(jī)制是基于事件循環(huán)签杈。
由于JS是單線程,所以同一時(shí)間只能執(zhí)行一個(gè)任務(wù)鼎兽,其他任務(wù)就得排隊(duì)答姥,后續(xù)任務(wù)必須等到前一個(gè)任務(wù)結(jié)束才能開始執(zhí)行。
為了避免因?yàn)槟承╅L(zhǎng)時(shí)間任務(wù)造成的無意義等待谚咬,JS引入了異步的概念鹦付,用另一個(gè)線程來管理異步任務(wù)。
3) Canvas繪制列表的嘗試 @TAT.Cson
為什么嘗試使用Canvas繪制列表择卦?使用canvas繪制列表的好處在于頁面只有一個(gè)dom元素敲长,這樣對(duì)于大量dom元素組成的列表來說,無疑更節(jié)省頁面內(nèi)存秉继。
本文將一步一步分析祈噪,如何實(shí)現(xiàn)一個(gè)canvas繪制的長(zhǎng)列表。
工具框架
1) 剖析Babel——Babel總覽 @TAT.dorsywang
Babel使用的引擎是babylon尚辑,babylon并非由babel團(tuán)隊(duì)自己開發(fā)的钳降,而是fork的acorn項(xiàng)目,acorn的項(xiàng)目本人在很早之前在興趣部落1.0在構(gòu)建中使用腌巾,為了是做一些代碼的轉(zhuǎn)換遂填,是很不錯(cuò)的一款引擎,不過acorn引擎只提供基本的解析ast的能力澈蝙,遍歷還需要配套的acorn-travesal, 替換節(jié)點(diǎn)需要使用acorn-吓坚,而這些開發(fā),在Babel的插件體系開發(fā)下灯荧,變得一體化了
2) 大型高性能React PWA如何消除各類性能瓶頸礁击? @尾尾
本文旨在幫助讀者了解,在全球規(guī)模最大的React.js PWA之一——Twitter Lite當(dāng)中逗载,是如何消除各類常規(guī)與罕見之性能瓶頸的哆窿。
前端視界
1) Surface @小魚
使用WebGL實(shí)現(xiàn)的水面特效實(shí)驗(yàn),可放入一張照片厉斟,使用鼠標(biāo)觸動(dòng)水面會(huì)有奇特效果挚躯。