精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

JavaScript ES12新特性搶先體驗

開發 前端
本文即將介紹的即提案4中的相關新特性,也是意味著這些新特性將很大程度的出現在下一個版本中。

[[350375]]

而每年,JavaScript都會更新添加新的特性新標準,在今年ES2020發布了,而ES2020(ES12)也預計將在明年即2021年年中發布。每年的新特性都會經歷四個階段,而第四階段也就是最后一個階段,本文即將介紹的即提案4中的相關新特性,也是意味著這些新特性將很大程度的出現在下一個版本中

特性搶先知:

  •  String.prototype.replaceAll 新增replaceAll
  •  Promise.any
  •  WeakRefs
  •  邏輯運算符和賦值表達式
  •  數字分隔符號

replaceAll

看到replaceAll這個詞,相比很容易聯想到replace。在JavaScript中,replace方法只能是替換字符串中匹配到的第一個實例字符,而不能進行全局多項匹配替換,唯一的辦法是通過正則表達式進行相關規則匹配替換

而replaceAll則是返回一個全新的字符串,所有符合匹配規則的字符都將被替換掉,替換規則可以是字符串或者正則表達式。 

  1. let string = 'I like 前端,I like 前端公蝦米'  
  2. //使用replace  
  3. let replaceStr = string.replace('like','love')  
  4. console.log(replaceStr)  // 'I love 前端,I like 前端公蝦米'  
  5. //replace使用正則匹配所有  
  6. console.log(string.replace(/like/g,'love')) // 'I love 前端,I love 前端公蝦米'  
  7. //使用replaceAll  
  8. let replaceAllStr = string.replaceAll('like','love')  
  9. console.log(replaceAllStr) // 'I love 前端,I love 前端公蝦米' 

需要注意的是,replaceAll在使用正則表達式的時候,如果非全局匹配(/g),則replaceAll()會拋出一個異常 

  1. let string = 'I like 前端,I like 前端公蝦米'  
  2. console.log(string.replaceAll(/like/,'love')) //TypeError 

Promise.any

當Promise列表中的任意一個promise成功resolve則返回第一個resolve的結果狀態 如果所有的promise均reject,則拋出異常表示所有請求失敗 

  1. Promise.any([  
  2.   new Promise((resolve, reject) => setTimeout(reject, 500, '哎呀,我被拒絕了')),  
  3.   new Promise((resolve, reject) => setTimeout(resolve, 1000, '哎呀,她接受我了')),  
  4.   new Promise((resolve, reject) => setTimeout(resolve, 2000, '哎呀,她也接受我了')), 
  5. ])  
  6. .then(value => console.log(`輸出結果: ${value}`))  
  7. .catch (err => console.log(err))  
  8. //輸出  
  9. //輸出結果:哎呀,她接受我了 

再來看下另一種情況 

  1. Promise.any([  
  2.   Promise.reject('Error 1'),  
  3.   Promise.reject('Error 2'),  
  4.   Promise.reject('Error 3')  
  5. ])  
  6. .then(value => console.log(`請求結果: ${value}`))  
  7. .catch (err => console.log(err))  
  8. //輸出  
  9. AggregateError: All promises were rejected 

Promise.any與Promise.race十分容易混淆,務必注意區分,Promise.race 一旦某個promise觸發了resolve或者reject,就直接返回了該狀態結果,并不在乎其成功或者失敗

WeakRefs

使用WeakRefs的Class類創建對對象的弱引用(對對象的弱引用是指當該對象應該被GC回收時不會阻止GC的回收行為)

當我們通過(const、let、var)創建一個變量時,垃圾收集器GC將永遠不會從內存中刪除該變量,只要它的引用仍然存在可訪問。WeakRef對象包含對對象的弱引用。對對象的弱引用是不會阻止垃圾收集器GC恢復該對象的引用,則GC可以在任何時候刪除它。

WeakRefs在很多情況下都很有用,比如使用Map對象來實現具有很多需要大量內存的鍵值緩存,在這種情況下最方便的就是盡快釋放鍵值對占用的內存。

目前,可以通過WeakMap()或者WeakSet()來使用WeakRefs

舉個栗子

我想要跟蹤特定的對象調用某一特定方法的次數,超過1000條則做對應提示 

  1. let map = new Map()  
  2. function doSomething(obj){  
  3.  ...  
  4.  
  5. function useObject(obj){  
  6.  doSomething(obj)  
  7.   let called = map.get(obj) || 0  
  8.   called ++   
  9.   if(called>1000){ 
  10.       console.log('當前調用次數已經超過1000次了,over')  
  11.   }  
  12.   map.set(obj, called)  

如上雖然可以實現我們的功能,但是會發生內存溢出,因為傳遞給doSomething函數的每個對象都永久保存在map中,并且不會被GC回收,因此我們可以使用WeakMap

 

  1. let wmap = new WeakMap()  
  2. function doSomething(obj){  
  3.  ...  
  4.  
  5. function useObject(obj){  
  6.  doSomething(obj)  
  7.   let called = wmap.get(obj) || 0  
  8.   called ++  
  9.   if(called>1000){  
  10.      console.log('當前調用次數已經超過1000次了,over')  
  11.   }  
  12.   wmap.set(obj, called)  

因為是弱引用,所以WeakMap、WeakSet的鍵值對是不可枚舉的

WeakSet和WeakMap相似,但是每個對象在WeakSet中的每個對象只可能出現一次,WeakSet中所有對象都是唯一的 

  1. let ws = new WeakSet()  
  2. let foo = {}  
  3. let bar = {}  
  4. ws.add(foo)  
  5. ws.add(bar)  
  6. ws.has(foo) //true  
  7. ws.has(bar) //true  
  8. ws.delete(foo) //刪除foo對象  
  9. ws.has(foo) //false 已刪除  
  10. ws.has(bar) //仍存在 

WeakSet與Set相比有以下兩個區別

  •  WeakSet只能是對象集合,而不能是任何類型的任意值
  •  WeakSet弱引用,集合中對象引用為弱引用,如果沒有其他對WeakSet對象的引用,則會被GC回收

最后,WeakRef實例有一個方法deref,返回引用的原始對象,如果原始對象被回收,則返回undefined 

  1. const cache = new Map();  
  2. const setValue =  (key, obj) => {  
  3.   cache.set(key, new WeakRef(obj));  
  4. };  
  5. const getValue = (key) => {  
  6.   const ref = cache.get(key);  
  7.   if (ref) {  
  8.     return ref.deref();  
  9.   }  
  10. };  
  11. const fibonacciCached = (number) => {  
  12.   const cached = getValue(number);  
  13.   if (cached) return cached;  
  14.   const sum = calculateFibonacci(number);  
  15.   setValue(number, sum);  
  16.   return sum;  
  17. }; 

對于緩存遠程數據來說,這可能不是一個好主意,因為遠程數據可能會不可預測地從內存中刪除。在這種情況下,最好使用LRU之類的緩存。

邏輯運算符和賦值表達式

邏輯運算符和賦值表達式,新特性結合了邏輯運算符(&&,||,??)和賦值表達式而JavaScript已存在的 復合賦值運算符有:

  •  操作運算符:+=   -=   *=   /=   %=   **=
  •  位操作運算符:&=   ^=   |=
  •  按位運算符:<<=   >>=   >>>=

現有的的運算符,其工作方式都可以如此來理解

表達式:a op= b

等同于:a = a op b

邏輯運算符和其他的復合賦值運算符工作方式不同

表達式:a op= b

等同于:a = a op (a = b) 

  1. a ||= b  
  2. //等價于  
  3. aa = a || (a = b 
  4. a &&= b  
  5. //等價于  
  6. aa = a && (a = b 
  7. a ??= b  
  8. //等價于  
  9. aa = a ?? (a = b

為什么不再是跟以前的運算公式a = a op b一樣呢,而是采用a = a op (a = b)。因為后者當且僅當a的值為false的時候才計算賦值,只有在必要的時候才執行分配,而前者的表達式總是執行賦值操作

??=可用來補充/初始化缺失的屬性 

  1. const pages = [  
  2.   {  
  3.    title:'主會場',  
  4.     path:'/'  
  5.   },  
  6.   {  
  7.     path:'/other'  
  8.   },  
  9.   ...  
  10.  
  11. for (const page of pages){  
  12.  page.title ??= '默認標題'  
  13.  
  14. console.table(pages)  
  15. //(index)  title         path  
  16. //0        "主會場"      "/"  
  17. //1        "默認標題"    "/other" 

小結:

  •  &&=:當LHS值存在時,將RHS變量賦值給LHS
  •  ||=:當LHS值不存在時,將RHS變量賦值給LHS
  •  ??= :當LHS值為null或者undefined時,將RHS變量賦值給LHS

數字分隔符

數字分隔符,可以在數字之間創建可視化分隔符,通過_下劃線來分割數字,使數字更具可讀性 

  1. const money = 1_000_000_000  
  2. //等價于  
  3. const money = 1000000000  
  4. const totalFee = 1000.12_34  
  5. //等價于  
  6. const totalFee = 1000.1234 

該新特性同樣支持在八進制數中使用 

  1. const number = 0o123_456  
  2. //等價于  
  3. const number = 0o123456 

該新特性方便讀取數據,可以讓我們「打工人」更容易辨認"資產" 不過話說回來,小編的資產好像不配使用該特性...敲重點!!!

本次所有新特性均介紹的第4階段,意味著將出現在下一個版本中的,沒有介紹階段3的,因為不確定是否一定會出現在下個版本中。本文介紹的新特性均可直接在最新版的谷歌瀏覽器中愉快體驗。 

 

責任編輯:龐桂玉 來源: 前端大全
相關推薦

2022-05-25 07:22:07

ES12JavaScript語言

2021-07-15 08:55:17

ES12 ECMAScript JS 功能

2009-08-18 09:17:01

JavaScript2

2023-09-20 10:56:30

Fedora 39Linux

2021-09-04 05:00:26

ESES2021ES12

2011-04-11 09:11:42

GNOME 3

2023-01-31 07:36:25

JavaScript數組緩沖

2019-03-29 09:51:23

軟件開發者 性能

2009-08-05 08:40:42

Windows 7新特性

2021-04-30 19:53:41

Java表達式代碼

2022-08-05 13:14:25

ES2022JavaScript代碼

2011-08-04 09:15:08

Gnome 3.2Gnome 3.1.5

2010-03-05 08:56:14

JSFUnit 1.2

2024-07-02 08:36:09

JavaScriptUnicode模式

2025-11-19 08:23:37

2022-10-31 16:20:33

JavaScript前端開發

2022-01-09 23:40:33

Windows 11Windows微軟

2019-12-27 16:10:53

前端javascriptnode.js

2022-01-07 20:58:35

Windows 11操作系統微軟

2023-05-22 16:03:00

Javascript開發前端
點贊
收藏

51CTO技術棧公眾號

免费日韩av| 欧美成年网站| 国产精品成人免费| 国产成人精品自拍| 无码人妻丰满熟妇区五十路| 天天综合一区| 国产手机视频精品| 91蝌蚪视频在线| 中文字幕成在线观看| 中文字幕一区在线| 免费日韩电影在线观看| 国产99视频在线| 日韩二区三区四区| 午夜精品久久久久久99热软件| 91导航在线观看| 成人看片黄a免费看视频| 91国偷自产一区二区使用方法| 国产视频在线观看网站| av女优在线| 91社区在线播放| 成人自拍爱视频| 夜夜嗨aⅴ一区二区三区| 国产精品久久777777毛茸茸 | 国产写真视频在线观看| 久久中文字幕电影| 国产欧美日韩伦理| av网站在线观看免费| 麻豆国产欧美日韩综合精品二区| 热门国产精品亚洲第一区在线| 国产在线视频在线观看| 亚洲成人一区| 色婷婷**av毛片一区| 免费看污黄网站在线观看| 国产成人av毛片| 日韩三级视频中文字幕| 图片区乱熟图片区亚洲| 欧洲精品久久久久毛片完整版| 色婷婷av一区二区三区软件| 毛片在线播放视频| 鲁鲁在线中文| 午夜精品久久久久久久99樱桃| 青青在线视频免费观看| 在线heyzo| 亚洲精品欧美二区三区中文字幕| 三区精品视频| 国产日产精品久久久久久婷婷| 久久日韩粉嫩一区二区三区| 好吊色欧美一区二区三区| 亚洲黄色精品视频| 国产成人免费在线| 高清视频在线观看一区| 精品人妻一区二区三区换脸明星 | 国产高清在线一区| 亚洲精品国产片| 本田岬高潮一区二区三区| 国产精品久久久久久久免费大片| 欧美视频久久久| av网站免费线看精品| 久久久精品动漫| 三级毛片在线免费看| 久久久久国产成人精品亚洲午夜 | 91精品国产91久久久久久黑人| 日韩视频免费大全中文字幕| 中文字幕在线有码| 精品福利电影| 日本成人在线视频网址| 高潮无码精品色欲av午夜福利| 免费成人在线观看视频| 国产在线999| www.久久综合| 99久久综合色| 亚洲精品不卡| 18加网站在线| 精品人伦一区二区三区蜜桃免费| 国产在线观看福利| 欧美成人福利| 欧美va亚洲va| 日本理论中文字幕| 在线精品国产| 日韩av免费看网站| 国产精品综合在线| 91影院在线免费观看| 伊人久久大香线蕉精品| 欧美精品videossex少妇| 天天操天天色综合| 五月婷婷丁香综合网| 亚洲1区在线| 亚洲天堂久久av| www欧美com| 噜噜噜在线观看免费视频日韩| 成人av番号网| 水莓100在线视频| 国产精品国产三级国产aⅴ中文| 欧美日韩激情四射| 日韩精品三区| 欧美刺激午夜性久久久久久久| 亚洲熟妇一区二区三区| 一级毛片免费高清中文字幕久久网| 高清欧美性猛交xxxx| 中文字幕免费高清在线观看| 成人国产亚洲欧美成人综合网| 色综合久久av| 高端美女服务在线视频播放| 欧美精品一二三四| 日韩人妻一区二区三区| 午夜日韩福利| 国产精品久久久久久久av大片| 欧美 日韩 国产 精品| 成人免费在线视频| 久久综合久久色| 日本久久伊人| 日韩视频―中文字幕| 免费看日批视频| 成人精品小蝌蚪| gogogo免费高清日本写真| 日本高清不卡一区二区三区视频| 亚洲国产精品99久久| 波多野结衣久久久久| 日韩影院免费视频| 狠狠色狠狠色综合人人| 男人添女人下部高潮视频在线观看| 欧美综合视频在线观看| 国产精品一区二区入口九绯色| 欧美黄色aaaa| 成人黄色在线观看| 欧美极品视频| 欧美在线观看视频在线| 亚洲久久久久久久| 亚洲综合日本| 久久99国产精品| 成人在线免费观看黄色| 日韩美女一区二区三区四区| 日本精品在线免费观看| 美美哒免费高清在线观看视频一区二区| 久久综合精品一区| 亚洲精品**中文毛片| 日韩精品极品视频免费观看| 久久狠狠高潮亚洲精品| 成人精品国产一区二区4080| 青青草综合在线| 久久在线观看| 欧美夫妻性视频| 精品国产九九九| 一区二区三区在线视频观看58| 欧美精品色视频| 最新欧美人z0oozo0| 91亚色免费| 秋霞在线视频| 亚洲国产成人av在线| 在线观看精品国产| 久久这里只有精品首页| 无码日韩人妻精品久久蜜桃| 狠狠做深爱婷婷综合一区| 国产97在线|日韩| 成人不用播放器| 欧美日韩国产精品自在自线| 成人三级视频在线观看| 狠狠色狠狠色综合日日91app| 超级碰在线观看| 中文无码日韩欧| 97精品伊人久久久大香线蕉| 你懂的好爽在线观看| 欧洲av一区二区嗯嗯嗯啊| 五月天免费网站| 国产精品一卡二卡在线观看| 拔插拔插海外华人免费| 一呦二呦三呦国产精品| 国产欧美日韩免费| 在线视频国产区| 日韩精品一二三四区| www.久久网| 亚洲精品视频在线观看免费| 亚洲久久久久久| 日产国产欧美视频一区精品| 欧美三级午夜理伦三级老人| 精品欧美午夜寂寞影院| 国产精品白嫩美女在线观看| 国产在线一区二区视频| 日韩精品黄色网| 一区二区三区免费在线| 亚洲午夜电影网| 久久精品—区二区三区舞蹈 | 91在线精品播放| 92久久精品| 中文字幕亚洲一区在线观看| 国产黄色片网站| 色婷婷一区二区三区四区| 在线免费看av网站| 久久影音资源网| 久久久久久久久久毛片| 中文在线一区| 免费成人进口网站| 国产欧美日韩免费观看| 亚洲综合自拍一区| 欧美va视频| 久久久爽爽爽美女图片| 欧美13一16娇小xxxx| 日韩精品欧美国产精品忘忧草| 亚洲自拍偷拍另类| 欧美性猛交xxxx富婆弯腰| 免费一级黄色大片| 亚洲国产激情av| 人妻av一区二区| 国产主播一区二区三区| 一区二区在线播放视频| 99成人在线| 草草草视频在线观看| 日韩极品一区| 欧美日本韩国在线| 久本草在线中文字幕亚洲| 国产日韩欧美视频| 欧美日韩五码| 久久久日本电影| av在线看片| 久久精品国产免费观看| 成人在线播放视频| 国产视频欧美视频| 亚洲人成色777777老人头| 欧美不卡在线视频| 国产麻豆一精品一男同| 欧美手机在线视频| 亚洲第一在线播放| 亚洲成人av电影在线| 欧美成人三级视频| 成人免费在线视频| 国产老头老太做爰视频| 国产精品对白交换视频| 少妇av片在线观看| 国产欧美日韩综合| 微拍福利一区二区| 久久久精品免费免费| 无码人妻aⅴ一区二区三区| 成人av午夜影院| 亚洲女则毛耸耸bbw| 国产东北露脸精品视频| 男人操女人下面视频| 国产精品88av| 第一页在线视频| 国产成人在线视频免费播放| 91av免费观看| 国产成+人+日韩+欧美+亚洲| 亚洲午夜精品在线观看| 国产盗摄一区二区三区| 成人在线观看一区二区| 成熟亚洲日本毛茸茸凸凹| 亚洲av成人片无码| 9久草视频在线视频精品| 日本护士做爰视频| 97se亚洲国产综合自在线| 久久久亚洲av波多野结衣| 久久久久久电影| 91麻豆制片厂| 最新日韩在线视频| 欧美精品久久久久性色| 亚洲一区二区三区在线看| 91看片在线播放| 91久久香蕉国产日韩欧美9色| 国产一级片一区二区| 欧美人与z0zoxxxx视频| 国产高清视频免费观看| 精品99一区二区三区| 欧美色视频免费| 在线观看成人黄色| 国产激情视频在线| 韩国福利视频一区| 丝袜美腿诱惑一区二区三区| 国产女人精品视频| 日韩激情综合| 久久综合精品一区| 亚洲国产精品久久久天堂| 国产精品视频一二三四区| 校园激情久久| 亚洲小视频网站| 成人小视频在线观看| 精品久久久久久中文字幕人妻最新| 欧美国产成人在线| 久久97人妻无码一区二区三区| 狠狠色噜噜狠狠狠狠97| 国产精品一区二区三区在线免费观看| 亚洲精品一线二线三线| 国产免费永久在线观看| 欧美高清激情视频| 日韩漫画puputoon| 国产91免费视频| 青青草综合网| 男人日女人视频网站| 久久精品国产亚洲aⅴ| a级片在线观看视频| 国产精品人人做人人爽人人添| 欧美成人三级视频| 欧美性大战久久| 成人福利小视频| 亚洲欧洲第一视频| 蜜乳av一区| 成人久久精品视频| 国产精品欧美在线观看| 91免费国产精品| 久久精品国产亚洲高清剧情介绍| 91丝袜在线观看| 中文字幕字幕中文在线中不卡视频| 男人午夜免费视频| 欧美一卡二卡三卡| 天堂а√在线官网| 欧美亚洲日本网站| youjizzjizz亚洲| 三级网在线观看| 欧美aⅴ一区二区三区视频| 国产精品无码电影| 一区二区高清免费观看影视大全| 自拍偷拍第八页| 亚洲精品影视在线观看| 91探花在线观看| 97人人做人人人难人人做| 久久人体视频| 久久午夜夜伦鲁鲁一区二区| 99久久精品免费看| 久久在线视频精品| 欧美一区永久视频免费观看| a√资源在线| 国产精品女主播视频| 激情综合网站| 午夜肉伦伦影院| 91日韩一区二区三区| 日本天堂在线视频| 日韩精品一区二区三区在线| 麻豆影院在线| 成人乱色短篇合集| 欧美第一精品| 自拍偷拍一区二区三区四区| 国产亚洲人成网站| 中文字幕在线观看视频免费| 精品香蕉一区二区三区| 欧美男人天堂| 久久99国产精品| 久久精品亚洲| 中文字幕国产专区| 在线一区二区三区| 国产女人在线观看| 国产女人精品视频| 亚洲成人三区| www.四虎在线| 午夜精品福利在线| 色鬼7777久久| 国产精品成久久久久三级| 欧洲激情视频| 一个色综合久久| 亚洲欧美区自拍先锋| 性猛交xxxx乱大交孕妇印度| 久久久久久久香蕉网| 国产精品午夜av| 成人久久久久久久久| 国产人成一区二区三区影院| 伊人网综合在线| 久久成人综合视频| 凹凸成人在线| 东京热加勒比无码少妇| 中文一区二区在线观看| 亚洲影视一区二区| 九九热在线精品视频| 久久影视三级福利片| 无码人妻丰满熟妇区毛片18 | 久久久久免费看| 亚洲国产精品高清久久久| 在线看片国产福利你懂的| 水蜜桃亚洲精品| 国产麻豆精品在线| 中日韩黄色大片| 色婷婷综合成人av| 综合激情久久| 国产精品免费观看久久| 中文字幕免费不卡在线| 国产aⅴ爽av久久久久成人| 91高潮在线观看| 99久久.com| 久久性爱视频网站| 欧美图区在线视频| 美足av综合网| 手机看片福利永久国产日韩| 国产91在线看| 天天操天天干天天摸| 欧美丰满少妇xxxxx| 国内精品视频在线观看| 亚洲少妇一区二区| 91极品视觉盛宴| 日韩电影免费观看| 日韩高清三级| 成人av网址在线| 亚洲天堂999| 欧美亚洲激情视频| 中国精品18videos性欧美| 中文字幕丰满乱子伦无码专区| 91精品在线免费观看| 韩国美女久久| av日韩在线看| 中文字幕不卡在线观看| 深爱激情五月婷婷| 成人黄色av网站| 久久久久久黄| 日本三级网站在线观看| 欧美成人午夜剧场免费观看|