精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

精品视频站长推荐| 综合视频免费看| 成人毛片在线播放| 不卡一区2区| 日韩一区二区三区四区| 国产情侣第一页| 欧美成熟毛茸茸| 久久国产精品99精品国产| 欧美成人激情图片网| 亚洲综合自拍网| 欧美极品在线| 精品露脸国产偷人在视频| 五月婷婷综合色| 成人乱码一区二区三区| 日精品一区二区三区| 欧美成人合集magnet| 欧美成人午夜精品免费| 国内不卡的一区二区三区中文字幕| 亚洲妇女屁股眼交7| 先锋影音网一区| 日韩中文字幕免费观看| 麻豆免费看一区二区三区| 久久人人爽人人| 五月天色婷婷丁香| 精品福利久久久| 亚洲大胆人体在线| 永久免费黄色片| 精品免费av一区二区三区| 亚洲国产aⅴ天堂久久| 在线观看日韩羞羞视频| 男同在线观看| 99精品偷自拍| 懂色一区二区三区av片| 国产一区二区在线视频观看| 亚洲福利一区| 色综合导航网站| 成人一级黄色大片| 欧美一区二区性| 亚洲天堂2020| 成人乱码一区二区三区av| 国产乱论精品| 欧美α欧美αv大片| 日韩av一卡二卡三卡| 欧美123区| 一本大道综合伊人精品热热 | 亚洲欧美aaa| 国模套图日韩精品一区二区| 亚洲高清不卡在线观看| 99er在线视频| 欧美寡妇性猛交xxx免费| 亚洲欧美偷拍三级| 中文字幕一区二区三区精彩视频| 国产人成在线观看| 国产欧美在线观看一区| 欧美日韩精品不卡| 精品99又大又爽又硬少妇毛片| 99v久久综合狠狠综合久久| 国产伦精品一区二区三区高清| 国产又粗又猛视频| 国内成人自拍视频| 亚洲自拍另类欧美丝袜| 国产色在线视频| 国产裸体歌舞团一区二区| 成人午夜激情网| 99久久精品国产一区色| 国产一区二区视频在线| 91久久精品视频| 不卡的日韩av| 成人av网站免费观看| 国产一区二区三区四区五区在线| 免费成人在线看| 99精品欧美一区二区三区综合在线| 精品亚洲一区二区三区四区五区高| 午夜激情小视频| 99国产精品国产精品毛片| 欧美视频观看一区| 日本蜜桃在线观看| 一区二区三区视频在线看| 成品人视频ww入口| 欧美电影免费观看高清完整| 在线日韩国产精品| 永久免费黄色片| 91麻豆精品激情在线观看最新| 精品福利一区二区三区免费视频| 日韩aaaaa| 国产免费av一区二区三区| 色av吧综合网| 国产一级淫片免费| 麻豆精品网站| 成人性生交大片免费看视频直播 | 91在线观看高清| 日本一区美女| 青春草视频在线观看| 精品久久久久久国产91| 亚洲视频在线观看一区二区三区| 日本成人一区二区| 亚洲黄色片网站| 毛片久久久久久| 影音先锋一区| 国产日本欧美一区二区三区| 亚洲第一色视频| 国产夜色精品一区二区av| 日韩精品福利片午夜免费观看| 波多野一区二区| 欧美日本一区二区在线观看| 久久久老熟女一区二区三区91| 啪啪亚洲精品| 久久久久久成人精品| 国产无遮挡又黄又爽又色视频| 国产呦萝稀缺另类资源| 就去色蜜桃综合| 污影院在线观看| 欧美日韩精品系列| 日韩无码精品一区二区| 婷婷丁香综合| 国产99久久久欧美黑人| 亚洲黄色在线观看视频| 国产精品麻豆久久久| av之家在线观看| 午夜视频在线观看精品中文| 在线国产精品播放| 日韩一区二区视频在线| 国产成人av福利| 综合视频在线观看| 国产精品久久乐| 亚洲欧洲在线视频| 久久久久久久久久影院| 国产成人亚洲精品狼色在线| 综合视频在线观看| 国产电影一区二区三区爱妃记| 日韩hd视频在线观看| 免费人成在线观看| 狠狠色丁香九九婷婷综合五月| 欧美日韩免费高清| 在线男人天堂| 亚洲精品成人免费| 国产精品theporn动漫| 国产乱子轮精品视频| 亚洲国产一区二区三区在线| 免费观看欧美大片| 亚洲精品美女视频| 国产一级视频在线播放| 国产成人综合自拍| 丰满人妻一区二区三区53号| 99精品美女视频在线观看热舞| 在线观看日韩www视频免费| 一级黄色av片| 久久噜噜亚洲综合| 无码精品国产一区二区三区免费| 欧美一级二级三级视频| 国产69精品久久久久久| 手机看片国产1024| 欧美视频中文在线看| 国产亚洲色婷婷久久99精品91| 伊人久久婷婷| 久久久久久久有限公司| 手机在线理论片| 亚洲欧美日韩综合| 日韩不卡高清视频| 国产精品午夜在线观看| 在线观看免费视频高清游戏推荐| 精品国产网站| 国产主播在线一区| 91精品久久| 欧美videos中文字幕| 日本免费一二三区| 99re成人精品视频| 日韩在线视频在线观看| 国产精品一区二区av交换| 国产精品久久久久久久久久久新郎| 成a人v在线播放| 欧美日韩久久不卡| 免费中文字幕在线观看| av在线播放不卡| 那种视频在线观看| 成人精品影视| 亚洲最大福利视频| 久久久久久久九九九九| 麻豆国产欧美日韩综合精品二区| 一区二区高清视频| 婷婷视频一区二区三区| 欧美诱惑福利视频| 永久免费av在线| 日韩欧美在线123| 黄色片视频网站| 国产色综合一区| 视频区 图片区 小说区| 亚洲日产国产精品| 小说区图片区图片区另类灬| 国产精品一区免费在线 | 国产精品自拍在线| 男人添女人下部高潮视频在观看| 伊甸园亚洲一区| 91社区国产高清| 色偷偷色偷偷色偷偷在线视频| 中日韩美女免费视频网站在线观看 | 亚洲午夜黄色| 天堂va久久久噜噜噜久久va| 欧美a在线观看| 日韩美女主播视频| 18videosex性欧美麻豆| 亚洲欧美国内爽妇网| 国产视频一区二区三| 欧美性xxxxxxx| 中文字幕在线有码| 国产日本欧美一区二区| 亚洲一区和二区| 日韩国产欧美在线视频| 人妻少妇精品久久| 91一区在线| 麻豆传媒一区二区| 99久久人爽人人添人人澡| 国产精品久久久久久影视| heyzo高清在线| 精品精品国产国产自在线| 视频在线不卡| 精品精品欲导航| 国产女18毛片多18精品| 色婷婷久久久久swag精品| 久久艹精品视频| 亚洲三级视频在线观看| 69精品无码成人久久久久久| aa级大片欧美| 娇妻高潮浓精白浆xxⅹ| 精品在线亚洲视频| 国产福利影院在线观看| 国产欧美一区二区色老头| 成人一级生活片| 久久久久久久久久久9不雅视频| 欧美一级二级三级| 亚洲日本三级| 久久99精品久久久久久三级| www.爱久久| 成人av资源网| 一区二区三区欧洲区| 亚洲aⅴ男人的天堂在线观看| 日韩在线观看不卡| 国产成人精品久久| 你懂得影院夜精品a| 热草久综合在线| 欧美激情网站| 欧美性一区二区三区| 182在线视频观看| 久久久久久久久91| 欧美wwww| 久久久亚洲成人| 91福利在线免费| 久久久久久亚洲精品| 欧美6一10sex性hd| 欧美精品video| 超碰在线最新网址| 91禁国产网站| 成人私拍视频| 国产精品扒开腿做爽爽爽男男| 美女一区网站| 国产精品一区=区| 亚洲91在线| 亚洲综合一区二区不卡| 日本超碰一区二区| 国产精品v欧美精品v日韩精品| 91精品久久久久久综合五月天 | 欧美影院久久久| 欧美第一视频| 国产欧美亚洲精品| 久久久久毛片免费观看| 99视频在线| 色狼人综合干| 亚洲成人在线视频网站| 久久久精品久久久久久96| 丁香婷婷综合激情| 亚洲中午字幕| 欧美女同在线观看| 国产精品一区二区x88av| 久久性爱视频网站| 久久综合精品国产一区二区三区| 舐め犯し波多野结衣在线观看| 国产精品视频你懂的| 老妇女50岁三级| 欧美午夜精品久久久久久人妖 | 涩涩涩在线视频| 国产精品高清免费在线观看| av日韩一区| 国产一区二区在线网站 | 黄黄视频在线观看| 在线日韩中文| av污在线观看| 成人精品在线视频观看| 亚洲一区二区自偷自拍 | 色一区av在线| 欧美高清另类hdvideosexjaⅴ| 青青草成人在线| 日韩成人综合网站| 国产日韩欧美精品| 日韩精品诱惑一区?区三区| 久艹在线免费观看| 日本vs亚洲vs韩国一区三区 | 国内免费精品永久在线视频| 色尼玛亚洲综合影院| 91在线免费观看网站| 日韩av资源网| 中文字幕成人一区| 亚洲一区二区三区免费在线观看| 在线免费黄色网| 91看片淫黄大片一级在线观看| 国产3级在线观看| 欧美性猛交xxxx乱大交极品| 97久久人国产精品婷婷| 亚洲欧美精品一区二区| 欧美xxxx少妇| 91影视免费在线观看| 国产精品亚洲片在线播放| 又大又硬又爽免费视频| 精品在线你懂的| 国产精品国产三级国产专业不| 亚洲国产另类av| 97精品人妻一区二区三区| 日韩精品日韩在线观看| a在线免费观看| 国产精品午夜视频| 九一精品国产| 99视频在线免费播放| 国产成人精品免费一区二区| 婷婷丁香综合网| 色婷婷国产精品| 亚洲人妻一区二区| 久久久久久久久国产精品| 日本一区精品视频| 性欧美18一19内谢| 久久精品国产精品青草| 99久久99久久精品免费看小说.| 偷拍日韩校园综合在线| 精品国自产在线观看| 日韩在线视频免费观看高清中文| 国产精品av一区二区三区 | 国产精品美女久久久免费| 四虎影视精品| 欧美一级在线看| 99久久国产综合精品色伊| 日韩高清免费av| 亚洲国产精品一区二区三区| 日本大片在线播放| 99在线视频播放| 欧美日韩一区自拍| 国产精品一级无码| 亚洲一区二区三区四区在线观看| 99精品在线视频观看| 精品综合久久久久久97| 九九九九九九精品任你躁| 久久国产精品免费观看| 国产一区二区视频在线播放| 日韩女优一区二区| 日韩免费观看高清完整版在线观看| 97caopor国产在线视频| 91精品婷婷国产综合久久蝌蚪| 亚洲午夜精品一区二区国产 | 岳毛多又紧做起爽| 26uuu精品一区二区| 在线永久看片免费的视频| 国产香蕉一区二区三区在线视频| 粉嫩一区二区三区| 一区二区三区欧美成人| 国产一区二区三区在线观看免费视频| 午夜国产福利一区二区| 欧美mv和日韩mv国产网站| 岛国在线视频网站| 欧洲一区二区在线观看| 蜜桃一区二区三区在线观看| 99久久99久久精品国产| 精品三级在线观看| 日韩大片免费观看| 日韩亚洲一区在线播放| 激情丁香综合五月| 欧美一级高潮片| 亚洲欧美日韩直播| www欧美在线观看| 性一交一乱一伧国产女士spa| 99re成人在线| 一区二区三区免费在线| 久久久久久12| 美女少妇全过程你懂的久久| 奇米影视四色在线| 亚洲韩国一区二区三区| 国产视频第一页在线观看| 91|九色|视频| 欧美专区18| 特级片在线观看| 亚洲女人天堂av| 久久伦理中文字幕| 欧美亚洲另类色图| 亚洲日本中文字幕区| 亚洲 另类 春色 国产| 国产精品香蕉在线观看| 国产精品magnet| 久久午夜精品视频| 精品国精品自拍自在线| 国产综合av| 欧美视频在线观看视频| 日韩理论片网站| 你懂的在线观看视频网站| 亚洲xxxx做受欧美|