色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

盤點(diǎn)總結(jié)ECMAScript新版本的四大功能的神秘之處

如意 ? 來源:讀芯術(shù)微信公眾號(hào) ? 作者:讀芯術(shù)微信公眾號(hào) ? 2020-10-10 09:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

2020年可能已經(jīng)位列史上最糟糕年份TOP5了。那么不妨忘記今年,期待一下2021會(huì)有什么驚喜吧!沒錯(cuò),明年我們將迎來新版ECMAScript(也就是常說的JavaScript)。本文中,筆者將快速帶你先來了解一下其為何物。

replaceAll字符串的方法

這一方法早就有了,現(xiàn)有的 replace方法早就應(yīng)該有所成效。也許你不知道,目前來自String對(duì)象的 replace方法只會(huì)影響所找到的第一個(gè)匹配,當(dāng)然,除非你使用正則表達(dá)式而不是簡單的字符串作為第一個(gè)參數(shù)。

這并非是很大的進(jìn)步,更多的是一種補(bǔ)充,但還是值得贊賞。

盤點(diǎn)總結(jié)ECMAScript新版本的四大功能的神秘之處

方法和訪問器的私密化修改器

目前還沒聽說私密化有何進(jìn)展(該提案還停留在第三階段),但是作為未來的一個(gè)嘗試,我們將能夠?qū)Ψ椒ê驮L問器設(shè)置可見性。這里的“可見性”是指將它們設(shè)置為私人化,意味著我們終于有了保護(hù)代碼的基本方式,并開始慢慢地走向更面向OOP的編碼方式(并不是說我們現(xiàn)在的函數(shù)式方法有什么問題)。

盤點(diǎn)總結(jié)ECMAScript新版本的四大功能的神秘之處

實(shí)質(zhì)上,你正在用#字符來使方法或訪問器私密化。這個(gè)字符也會(huì)成為該名稱的一部分,所以如果你想使用上面所提到的方法,可以簡單地用 this.#Age 或者 this.#myPrivateMethod()。

在這兩種情況下,如果你試圖從一類之外甚至從擴(kuò)展了的類里面使用它們,都會(huì)出現(xiàn)異常(要等到有了保護(hù)方法之后再使用)。

終結(jié)器和弱引用?

這兩個(gè)有趣的工具可以幫助處理內(nèi)存使用問題,并管理垃圾收集。不過,除非你需要特別注意內(nèi)存的使用,不然不太需要用到這兩個(gè)工具。

注意,下面的兩個(gè)功能涉及垃圾收集器的工作方式,但安裝啟用只針對(duì)一個(gè)運(yùn)行時(shí)。這意味著編寫依賴于非標(biāo)準(zhǔn)安裝的業(yè)務(wù)邏輯很可能會(huì)產(chǎn)生意想不到的結(jié)果。即使有了這些工具,也要在使用前要清楚自己的目的。

(1) 弱引用

在介紹弱引用之前,我先快速介紹一下強(qiáng)引用,以便你理解弱引用的優(yōu)勢。強(qiáng)引用本質(zhì)上是一個(gè)指向目標(biāo)的指針,在JavaScript中,這只是一個(gè)變量,你已經(jīng)將目標(biāo)分配到這個(gè)變量中。比如說:

盤點(diǎn)總結(jié)ECMAScript新版本的四大功能的神秘之處

上文中,myP是一個(gè)有效的強(qiáng)引用,直到它不復(fù)存在。一旦對(duì)一個(gè)對(duì)象的所有強(qiáng)引用被消除,那么垃圾收集器就可以自由地銷毀這個(gè)對(duì)象,并釋放它的內(nèi)存以便用于其他事情。也就是說,有些情況下,比如下面這種,強(qiáng)引用可能會(huì)鎖定一個(gè)目標(biāo),以至于永遠(yuǎn)無法釋放。

盤點(diǎn)總結(jié)ECMAScript新版本的四大功能的神秘之處

在上面的例子中,兩個(gè)對(duì)象都是相互引用的,所以即使me和sibling變量都不在范圍內(nèi),因此,去掉引用,在內(nèi)部每個(gè)對(duì)象都對(duì)另一個(gè)對(duì)象有一個(gè)強(qiáng)引用。在實(shí)踐中,這意味著這些對(duì)象永遠(yuǎn)不會(huì)被收集。這么做完全沒有問題,除非你是在一個(gè)內(nèi)存非常小的設(shè)備中使用JS。

(2) 輸入弱參考

對(duì)強(qiáng)引用有所了解之后,弱引用就很好理解啦。弱引用本質(zhì)上是一種保留對(duì)象引用而不影響垃圾收集器行為的方法。在前面的例子中,如果sibling性能會(huì)使用弱引用構(gòu)造來設(shè)置,那么就可以收集這些對(duì)象。弱引用的另一個(gè)用例是緩存結(jié)構(gòu),因?yàn)槿藗儾幌M彺娴膶?duì)象內(nèi)部引用過于活躍。

盤點(diǎn)總結(jié)ECMAScript新版本的四大功能的神秘之處

上面的例子非常基礎(chǔ),使用弱引用就是這么簡單。只要記住,如果你想訪問被引用的對(duì)象,要用deref方法。因?yàn)檫@是一個(gè)弱引用,就需要檢查deref的返回值,如果它是未定義的,就說明這個(gè)對(duì)象不再存在,否則可以安全地使用它(因此在 get 方法中進(jìn)行IF檢查)。

(3) 終結(jié)器

現(xiàn)在,在頂部的 cherrie 中,終結(jié)器允許你對(duì)弱引用對(duì)象收集垃圾的事實(shí)做出反應(yīng)。同樣,這也是高度具體化的實(shí)現(xiàn),以下是使用方法:

盤點(diǎn)總結(jié)ECMAScript新版本的四大功能的神秘之處

本質(zhì)上,這里用了FinalizationRegistry 來創(chuàng)建注冊表,需要用回調(diào)函數(shù)作為參數(shù)。在每次收集一個(gè)對(duì)象(之前用register 方法注冊的)時(shí)都會(huì)用到這個(gè)函數(shù)。

register 方法本身是用來指定所等待的對(duì)象的重構(gòu)方法,它的第二個(gè)參數(shù)是在創(chuàng)建注冊表時(shí)傳遞給初始定義的回調(diào)的值。建議你少用這個(gè)方法,特別是不要想著用它來做業(yè)務(wù),但是可以考慮在特殊情況下用它來解決一些新奇的問題。

Promise.any

在這個(gè)版本中,ECMAScript中增加了一個(gè)同時(shí)處理多個(gè)承諾的方法。any方法可以運(yùn)行多個(gè)承諾,并用第一個(gè)解決的承諾來解決后面的問題,或者等到所有的承諾都失敗并返回到一個(gè)AggregateError對(duì)象處(它是Error對(duì)象的一個(gè)子類)。

那么,any和race之間有什么區(qū)別呢?事實(shí)上,race只要有一個(gè)承諾會(huì)實(shí)現(xiàn)或失敗,它就會(huì)進(jìn)行結(jié)算并返值。然而,any 會(huì)用第一個(gè)結(jié)算值進(jìn)行結(jié)算,或者等待所有的值都失敗了,再一起恢復(fù)所有錯(cuò)誤。

const promise1 =Promise.reject(0); const promise2 =newPromise((resolve) =》setTimeout(resolve, 100, ‘quick’)); const promise3 =newPromise((resolve) =》setTimeout(resolve, 500, ‘slow’)); const promises = [promise1, promise2, promise3]; Promise.race(promises).then((value) =》 console.log(value)); //logs the rejected promise //vs Promise.any(promises).then((value) =》 console.log(value)); //logs “quick”

注意any實(shí)際上忽略了第一個(gè)被拒絕的承諾,因?yàn)檫€有其他的承諾正在解決,這就是race和any的主要區(qū)別。

ECMAScript2021的新特征不多,但已經(jīng)被接受的功能筆者看來非常好!使用WeakRef和FinalizationRegistry時(shí)要小心哦,它們的功能非常有趣,但它們在不同的運(yùn)行情況下處理的結(jié)果或行為可能會(huì)不一樣。

你最喜歡哪個(gè)新功能?對(duì)于這個(gè)版本,你最期待的又是什么呢?
責(zé)編AJX

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    589

    瀏覽量

    21234
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    525

    瀏覽量

    54648
  • ECMA
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    3929
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    LABview最新版本

    請問LABview的最新版本是什么?
    發(fā)表于 11-07 15:42

    如何使用更新版本的MbedTLS?

    。ST在CubeMX中更新版本需要多長時(shí)間?我將如何使用更新版本的 MbedTLS?似乎我有兩個(gè)選擇。一種是使用 ST 版本構(gòu)建項(xiàng)目,然后使用新版本的 MbedTLS 手動(dòng)更新文件 -
    發(fā)表于 12-15 09:06

    FilterPro v3.0設(shè)計(jì)工具的最新版本

    FilterPro v3.0設(shè)計(jì)工具的最新版本 TI推出其普及型 FilterProTM 設(shè)計(jì)工具的最新版本。該 FilterPro v3.0 更新了各種功能,如調(diào)節(jié)無源元件容差、查看
    發(fā)表于 05-17 13:36 ?8268次閱讀

    MathWorks推出 MATLAB 的重要新版本

     中國北京 – 2014 年10月9日 – MathWorks今日宣布,推出MATLAB的重要新版本。作為2014b版本的一部分,重大的更新功能包括了全新的圖形系統(tǒng)、大數(shù)據(jù)功能以及經(jīng)過
    發(fā)表于 10-09 15:44 ?4769次閱讀

    新版本IAR工具下載

    新版本IAR工具下載
    發(fā)表于 11-23 17:35 ?0次下載

    新版本IAR破解視頻教程

    新版本IAR破解視頻教程
    發(fā)表于 12-17 11:06 ?0次下載

    應(yīng)用每隔一段時(shí)間都會(huì)發(fā)布一個(gè)新版本,小米5C應(yīng)用自動(dòng)升級(jí)教程

    應(yīng)用每隔一段時(shí)間都會(huì)發(fā)布一個(gè)新版本新版本會(huì)修復(fù)舊版本上發(fā)現(xiàn)的問題,以及加入一些新的功能,那什么如何才能一直保持應(yīng)用都是最新版本呢?那就是開
    發(fā)表于 04-17 14:30 ?2850次閱讀

    新版本數(shù)據(jù)平面開發(fā)套件(DPDK)的功能介紹

    了解最新版本的DPDK。每個(gè)版本附帶的功能清單都是升級(jí)的,我們將描述每個(gè)版本如何影響在其應(yīng)用程序中使用它的NFV用戶。
    的頭像 發(fā)表于 11-05 06:49 ?7023次閱讀

    360極速瀏覽器新版本四大亮點(diǎn)

    今天360極速瀏覽器發(fā)布新版本版本號(hào)為12.0,新版具備“四大亮點(diǎn)”:Chromium78全新內(nèi)核、DNS加密防劫持、暗夜炫黑模式、4K高清視頻播放,號(hào)稱全方位實(shí)現(xiàn)暢快瀏覽體驗(yàn)。
    的頭像 發(fā)表于 11-26 14:39 ?3926次閱讀

    Keil MDK和IAR EWARM新版本問題方案

    Keil MDK和IAR EWARM新版本,及不同版本兼容性問題
    的頭像 發(fā)表于 01-10 14:47 ?5430次閱讀

    開源3D圖形工具新版本:引入大量新功能和改進(jìn)

    雖然失敗了,但沒準(zhǔn)第次就會(huì)成功,主要是鼓勵(lì)別放棄)。 最新版本進(jìn)一步改善了用戶體驗(yàn),提供了一系列新的功能,包括全新的 Booleans,為布雕和大量物體修改引入碰撞支持,并承諾改進(jìn)諸多動(dòng)畫工具。 雕刻在此
    的頭像 發(fā)表于 11-27 17:46 ?1825次閱讀

    ASCII對(duì)照表最新版本下載

    ASCII對(duì)照表最新版本下載
    發(fā)表于 08-23 10:53 ?0次下載

    谷歌發(fā)布Chrome新版本

    近日,谷歌正式發(fā)布Chrome 100,該瀏覽器今天剛剛發(fā)布了版本號(hào)為 100 的最新版本,目前,Mac、Windows、安卓和iOS平臺(tái)都已經(jīng)開始同步推送更新,新版本將會(huì)繼續(xù)減少內(nèi)存、CPU占用率等情況。
    的頭像 發(fā)表于 03-30 16:54 ?2627次閱讀

    Motor-CAD最新版本的NVH功能介紹

    Motor-CAD最新版本的電機(jī)NVH快速分析功能,可用于電機(jī)概念設(shè)計(jì)階段快速對(duì)比不同設(shè)計(jì)方案的NVH水平,在設(shè)計(jì)初期定位潛在的共振頻率段,指導(dǎo)電機(jī)NVH優(yōu)化設(shè)計(jì)的方向。在本次電機(jī)仿真進(jìn)階研修班中,將對(duì)Motor-CAD最新版本
    的頭像 發(fā)表于 12-12 10:35 ?4518次閱讀

    CANoe新版本18正式發(fā)布

    新版本持續(xù)為電動(dòng)智能軟件開發(fā)測試帶來系列化的新功能新版本CANoe產(chǎn)品體系包括具有GUI交互的桌面版本、可部署在服務(wù)器后云端的服務(wù)器版本
    的頭像 發(fā)表于 05-09 08:25 ?5987次閱讀
    CANoe<b class='flag-5'>新版本</b>18正式發(fā)布
    主站蜘蛛池模板: 被滋润的艳妇疯狂呻吟白洁老七 | 亚洲成人免费看 | 国产AV国片精品无套内谢无码 | 伊人久久一本 | 亚洲AV久久久久久久无码 | 在线日本v二区不卡 | 荡乳乱公小说 | 久色乳综合思思在线视频 | 日本无码人妻丰满熟妇5G影院 | 亚洲不卡视频在线 | 99热久久这里只有精品 | 久久精品天天爽夜夜爽 | YELLOW视频直播在线观看高清 | 寂寞夜晚免费观看视频 | 亚洲偷偷自拍免费视频在线 | 成人精品视频在线观看播放 | 欧美高清 videos sexo | av天堂网2014在线 | 狠狠色丁香久久婷婷综合_中 | 麻豆人妻无码性色AV | 国产午夜三区视频在线 | 99热这里只有精品视频2 | 国产精亚洲视频综合区 | 午夜福利体验试看120秒 | 国产成年网站v片在线观看 国产成年人在线观看 | 中文字幕在线观看国产 | 国产精品久久久精品a级小说 | 精品免费在线视频 | 欧美色图天堂网 | 天堂在线亚洲精品专区 | 精品综合久久久久久8888 | 午夜看片福利在线观看 | 中文字幕偷乱免费视频在线 | 亚洲H成年动漫在线观看不卡 | 亚洲精品在看在线观看 | 久久久久久九九 | 免费成人小视频 | 精品亚洲国产熟女福利自在线 | 伊人久久大香网 | 久久国产精品自线拍免费 | 少妇的肉体AA片免费 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品