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

這些ES特性你用了嗎?

系統 瀏覽器
今天這篇文章的靈感來自于日常的項目開發,「 我以為vue項目中已經添加了對可選鏈的支持,但在使用的時候會報錯,所以我更新了cli,發現最新版的cli已經對babel進行了更新 ,也就是對ES的新的一些特性已支持 」。

[[385595]]

今天這篇文章的靈感來自于日常的項目開發,「 我以為vue項目中已經添加了對可選鏈的支持,但在使用的時候會報錯,所以我更新了cli,發現最新版的cli已經對babel進行了更新 ,也就是對ES的新的一些特性已支持 」。

簡單的歸納了幾個點:

  • Array新方法find、findIndex、includes、flat等
  • Object新方法entries、fromEntries、Object.getOwnPropertyDescriptors等
  • String新方法padStart、padStart、trimStart、trimEnd、
  • for await of
  • Function.prototype.toString

接下來展開討論一下。

Array

在項目中我們常常會遇到對數組的操作是

  • 數組中判斷是否有該字段
  • 在數組中找到某一對象
  • 多維數組平鋪
  • 拼接、過濾、排序、裁剪、填充等

在ES6中我們判斷一個字符串中是否包含某一個字符,我們可以用includes:

  1. let str = '驚天碼盜'
  2. str.includes('驚天');  
  3. // true 

而在ES7中也加入了對數組的支持

  1. const arr = [1, 3, 5, 2, '8', NaN, -0, undefined] 
  2. arr.includes(1) // true 
  3. arr.includes(1, 2) // false 該方法的第二個參數表示搜索的起始位置,默認為 0 
  4. arr.includes('1') // false 
  5. arr.includes(NaN) // true 
  6. arr.includes(+0) // true 
  7. arr.includes(undefined) // true 

在業務代碼中遇到最多的就是在數組中找到某一對象

  1. const list = [{ id: 1, name'Jok' }, { id: 2, name'Tom' }] 
  2.  
  3. // 判斷list是否存在Tom 
  4. const isHasTome = list.some(e => e.name == "Tom"); 
  5. // true 
  6. const jokItem = list.find(e => e.name == "Tom"); 
  7. // { id: 2, name'Tom' } 
  8. const jokIndex = list.findIndex(e => e.name == "Tom"); 
  9. // 1 
  10.  
  11. // 檢查數組所有元素是否符合指定條件 
  12. const hasPropToName = list.every(e => e.name
  13. // true 檢查每一項是否有name屬性 

在ES10中新增了一個flat方法,將多維數組打平:

  1. const arr = [1, 2, [3, [4, 5], 6], 7] 
  2. arr.flat(); 
  3. // [1, 2, 3, [4, 5], 6, 7] 
  4. arr.flat(2); 
  5. // [1, 2, 3, 4, 5, 6, 7] 
  6.  
  7. //arr.flat(depth) 
  8. // depth 是指定要提取嵌套數組的結構深度,默認值為 1 

在ES6中還有一個比較有意思的API,就是entries

  1. // 數組迭代器 
  2. const iterator = list.entries() 
  3. iterator.next();  
  4. // { done: false, value:[ 0, { id: 1, name'Jok' }] } 
  5. iterator.next();  
  6. // { done: false, value:[ 1, { id: 2, name'Tom' }] } 
  7. iterator.next();  
  8. // { done: true, value: undefined} 

有點類似generator函數。

  1. // 處理promise 
  2. const promiseCase = (p) => { 
  3.   return new Promise(function (resolve, reject) { 
  4.     setTimeout(function () { 
  5.       resolve(`${p}成功`); //代碼正常執行! 
  6.     }, 250); 
  7.   }); 
  8. const asyncList = [promiseCase('p1'), promiseCase('p2'), promiseCase('p3')]; 
  9. const iterator = asyncList.entries(); 
  10. // undefined 
  11. for (let e of iterator) { 
  12.   console.log(e); 
  13.   e[1].then
  14.     res=>console.log(res) 
  15.   ) 
  16.  
  17. // [0, Promise] 
  18. // [1, Promise] 
  19. // [2, Promise] 
  20. // p1成功 
  21. // p2成功 
  22. // p3成功 

Object

ES5引入了Object.keys返回健名。緊跟著ES8引入了Object.values和Object.entries,作為遍歷一個對象的手段,供for of使用。

  1. const obj = { foo: 'bar', baz: 42 }; 
  2. Object.keys(obj) 
  3. // ["foo""baz"
  4. Object.values(obj) 
  5. // ["bar", 42] 
  6. const objEntries = Object.entries(obj) 
  7. // [["foo""bar"], ["baz", 42]] 
  8. Object.fromEntries(objEntries) 
  9. // {foo: "bar", baz: 42} 

也可以用entries來判斷對象中某些值的對比:

  1. const obj = { 
  2.   a: 21, 
  3.   b: 22, 
  4.   c: 23 
  5. let res = Object.fromEntries(Object.entries(obj).filter(([a, b]) => b > 21)) 
  6. console.log(res)  
  7. // {b: 22, c: 23} 

ES5 的 Object.getOwnPropertyDescriptor() 方法會返回某個對象屬性的描述對象(descriptor)。ES8 引入了 Object.getOwnPropertyDescriptors() 方法,返回指定對象所有自身屬性(非繼承屬性)的描述對象。

Object.assign無法正確拷貝get屬性和set屬性,Object.getOwnPropertyDescriptors() 方法配合 Object.defineProperties() 方法,就可以實現正確拷貝。

  1. const source = { 
  2.   set foo (value) { 
  3.     console.log(value) 
  4.   }, 
  5.   get bar () { 
  6.     return '浪里行舟' 
  7.   } 
  8. const target1 = {} 
  9. Object.assign(target1, source) 
  10. console.log(Object.getOwnPropertyDescriptor(target1, 'foo')) 
  11. // undefined 
  12.  
  13. const target2 = {} 
  14. Object.defineProperties(target2, Object.getOwnPropertyDescriptors(source)) 
  15. console.log(Object.getOwnPropertyDescriptor(target2, 'foo')) 
  16. // set: ƒ foo(value) 

String

在 ES8 中 String 新增了兩個實例函數 String.prototype.padStart 和 String.prototype.padEnd,允許將空字符串或其他字符串添加到原始字符串的開頭或結尾。

  1. String.padStart(targetLength,[padString]) 
  2. // targetLength(必填): 當前字符串需要填充到的目標長度。如果這個數值小于當前字符串的長度,則返回當前字符串本身。 
  3. // padString(可選): 填充字符串。如果字符串太長,使填充后的字符串長度超過了目標長度,則只保留最左側的部分,其他部分會被截斷,此參數的缺省值為 " "。 
  4.  
  5. 'x'.padStart(4, 'ab') // 'abax' 
  6. 'x'.padEnd(5, 'ab') // 'xabab' 

在ES10中新增了兩個移除開頭和結尾的空格。

  1. let str = ' 驚天 碼盜 ' 
  2. str.trimStart(); // str.trimLeft(); 
  3. // '驚天 碼盜 ' 
  4. str.trimEnd(); // str.trimRight(); 
  5. // ' 驚天 碼盜' 
  6. str.trim(); 
  7. // '驚天 碼盜' 
  8. str.replace(/\s+/g, '') ; 
  9. // '驚天碼盜' 

for await of

for of方法能夠遍歷具有 Symbol.iterator 接口的同步迭代器數據,但是不能遍歷異步迭代器。ES9 新增的 for await of 可以用來遍歷具有 Symbol.asyncIterator 方法的數據結構,也就是異步迭代器,且會等待前一個成員的狀態改變后才會遍歷到下一個成員,相當于 async 函數內部的 await。

我想大家基本都寫過類似這樣的代碼:

  1. const promiseCase = (p) => { 
  2.   return new Promise(function (resolve, reject) { 
  3.     setTimeout(function () { 
  4.       resolve({ 
  5.         code: 0, 
  6.         name: `${p}` 
  7.       }); //代碼正常執行! 
  8.     }, 250); 
  9.   }); 
  10. const asyncList = [promiseCase('p1'), promiseCase('p2'), promiseCase('p3')]; 
  11. asyncList.forEach(async (e) => { 
  12.   const data = await e; 
  13.   console.log(data) 
  14. }) 
  15. // {code: 0, name"p1"
  16. // {code: 0, name"p2"
  17. // {code: 0, name"p3"

現在可以這樣寫:

 

  1. async function test () { 
  2.   for await (let item of asyncList) { 
  3.     console.log(Date.now(), item) 
  4.   } 
  5. test() 
  6. // 1614935341100 {code: 0, name"p1"
  7. // 1614935341100 {code: 0, name"p2"
  8. // 1614935341100 {code: 0, name"p3"

Function.prototype.toString

ES2019 中,Function.toString() 發生了變化。之前執行這個方法時,得到的字符串是去空白符號的。

而現在,得到的字符串呈現出原本源碼的樣子:

  1. function sum(a, b) { 
  2.   return a + b; 
  3. console.log(sum.toString()); 
  4. // function sum(a, b) { 
  5. // return a + b; 
  6. // } 

本文轉載自微信公眾號「驚天碼盜」,可以通過以下二維碼關注。轉載本文請聯系驚天碼盜公眾號。

 

責任編輯:武曉燕 來源: 驚天碼盜
相關推薦

2014-02-17 10:54:13

PostgreSQL數據庫

2018-05-20 11:01:47

Siri語音助手手機

2023-11-30 08:19:52

偽類CSS

2020-03-20 19:10:37

支付寶新版移動應用

2013-09-02 09:46:46

云計算

2024-09-30 09:28:34

軟件研發交付

2016-10-13 19:31:56

大數據應用大數據

2019-11-20 10:38:36

路由路由協議路由器

2020-06-23 10:28:30

軟件研發交付

2020-10-14 07:52:36

ES11編程語言開發

2009-05-18 10:57:35

.NETString特性

2020-12-17 08:39:36

Css前端html

2020-04-14 08:46:47

Java對象編譯器

2019-05-20 16:30:36

PythonMySQL存儲

2019-08-05 15:05:35

2020-03-05 09:42:43

JavaJava虛擬機數據庫

2009-11-12 16:01:27

2024-03-20 08:31:40

KotlinExtension計算

2019-04-23 11:21:57

ERP系統管理信息化

2018-04-26 16:35:44

PythonMySQL存儲
點贊
收藏

51CTO技術棧公眾號

免费电影日韩网站| 成人动漫视频在线观看免费| 亚洲欧美丝袜| 爱豆国产剧免费观看大全剧苏畅| av手机免费看| 欧美电影免费| 日韩欧美在线视频观看| 成人欧美一区二区三区在线观看| 一级特黄曰皮片视频| 国产美女高潮在线观看| 亚洲mv大片欧洲mv大片| 在线一区二区三区四区| 久久国产精品高清| 精品午夜福利视频| 亚洲一区二区三区四区电影| 中文字幕日韩av资源站| 国产精品精品视频一区二区三区| 影音先锋黄色资源| 福利在线导航136| 国产一区91精品张津瑜| 久久色精品视频| 国产综合av在线| 丰满人妻一区二区三区免费视频| 国产精品久久占久久| 欧美日韩精品欧美日韩精品一 | 色哟哟网站入口亚洲精品| 久久综合色视频| 欧美另类极品| 极品少妇一区二区| 久久精品电影一区二区| 亚洲第一黄色网址| 亚洲性色av| 久久久国产午夜精品| 国产精品99久久久久久白浆小说| 亚洲日本精品视频| 123成人网| 亚洲欧洲另类国产综合| 欧美激情www| 波多野结衣家庭主妇| 四季av在线一区二区三区| 亚洲精品福利资源站| 成人一对一视频| 欧美视频免费一区二区三区| 久久一区二区三区超碰国产精品| 一级做a爰片久久毛片美女图片| 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 亚洲激情专区| 日韩久久午夜影院| 少妇激情一区二区三区| 神马午夜在线视频| 欧美国产日本韩| 91精品在线看| 日韩三级视频在线播放| 精品一区不卡| 欧美一区二区三区在线| 国产人妻777人伦精品hd| 在线观看的网站你懂的| 97aⅴ精品视频一二三区| 国产成人精品免高潮费视频| 五月天综合激情| 日韩久久视频| 精品国产区一区| 亚洲性生活网站| 性网站在线观看| 久久亚洲精华国产精华液| 国产在线观看不卡| 国产污污视频在线观看| 一区二区91| 久久精品91久久香蕉加勒比| 日韩在线观看免| 亚洲品质自拍| 精品久久人人做人人爱| 日本成人中文字幕在线| 一二区成人影院电影网| 亚洲国产婷婷综合在线精品| 午夜一区二区三区| 欧美自拍第一页| 精品无码三级在线观看视频| 国产日韩精品在线| jlzzjlzz亚洲女人18| 国产69精品久久久久777| 97高清免费视频| 国产不卡一二三| 五月天亚洲一区| 精品国产一二三| 亚洲精品视频大全| 日本在线视频一区二区三区| 在线视频国产一区| 性chinese极品按摩| 亚洲国产成人二区| 欧美亚洲综合久久| aa在线免费观看| 成人福利影视| 色综合久久久网| 人人妻人人添人人爽欧美一区| 黑人巨大精品| 欧美一级片在线看| 捷克做爰xxxⅹ性视频| 播放一区二区| 欧美大片顶级少妇| 99热这里只有精品2| 国产精品伦一区二区| 色婷婷精品久久二区二区蜜臂av| 成人性生生活性生交12| 日韩一二三区在线观看| 亚洲美女av黄| 91精品人妻一区二区| 麻豆国产欧美一区二区三区r| 日韩视频不卡中文| 91成年人网站| 国产成人精品三级高清久久91| 亚洲精品电影网在线观看| 日韩黄色中文字幕| 日韩一级不卡| 91九色国产视频| 国产三级视频在线| 日本一区二区三区在线不卡| 免费亚洲精品视频| 国模吧精品人体gogo| 国产色综合一区| 日韩妆和欧美的一区二区| 国产中文字幕在线| 亚洲午夜视频在线观看| 岛国毛片在线播放| 天堂俺去俺来也www久久婷婷| 毛片精品免费在线观看| 欧美黄色aaa| 欧美日韩网址| 69精品小视频| 波多野结衣高清视频| 成人av电影在线播放| 免费看成人av| 成人福利影视| 欧美变态tickle挠乳网站| 少妇高潮一区二区三区喷水| 三级在线观看一区二区| 国产另类自拍| 国产综合在线观看| 精品福利在线观看| 妺妺窝人体色www在线观看| 国产精品极品在线观看| 亚洲久久久久久久久久久| 国产亚洲精品成人| 国产99久久久精品| 国产精品国三级国产av| 最新欧美色图| 日韩av在线影院| 国产又粗又黄又猛| 视频在线观看91| 色噜噜一区二区| 精品国产欧美日韩一区二区三区| 日韩精品久久久久久久玫瑰园| 日本免费一二三区| 秋霞午夜av一区二区三区| 成人淫片在线看| 日韩在线观看视频网站| 亚洲高清不卡在线| 爱情岛论坛亚洲首页入口章节| 日韩欧美中文在线观看| 九九精品在线播放| 中文字幕在线日本| 国产无人区一区二区三区| 国产精品97在线| 久久在线观看| 国产一区二区久久精品| 国产在线视频你懂的| 日韩成人伦理电影在线观看| 超碰97在线资源| 牛牛精品在线| 欧美日韩国产综合一区二区| 极品蜜桃臀肥臀-x88av| 美女任你摸久久| 久久久久久久久一区二区| 制服丝袜专区在线| 最近2019中文字幕第三页视频| 中文字幕欧美人妻精品一区蜜臀 | 91香蕉视频免费看| 国产精品欧美在线观看| 国产精品欧美激情| 亚洲 国产 欧美 日韩| 亚洲人成亚洲人成在线观看图片| 六月丁香婷婷在线| 日本不卡高清| 国产成人在线播放| 蜜芽在线免费观看| 精品区一区二区| 成人在线免费看视频| 成人永久免费视频| 成年人三级视频| 78精品国产综合久久香蕉| 亚洲国产精品成人一区二区| 日本黄色小说视频| 精品一区二区三区蜜桃| 神马影院一区二区| 精品国产亚洲一区二区三区在线| 久久人人爽国产| 性色av蜜臀av| 欧美国产精品专区| 精品人妻二区中文字幕| 一区二区三区在线| 91精品在线影院| 麻豆mv在线看| 久久久av电影| 久久精品国产亚洲a∨麻豆| 91精品国产免费| 中文字幕一区在线播放| 99久久国产免费看| 中文字幕成人免费视频| 日韩理论电影院| 国产三区精品| 天堂8中文在线最新版在线| 这里只有精品在线观看| 欧美性受xxx黑人xyx性爽| 国产日韩欧美精品电影三级在线| 乳色吐息在线观看| 免费一级欧美片在线观看| 欧美激情视频免费看| 久久狠狠久久| 亚洲va码欧洲m码| av网站导航在线观看免费| 亚洲性视频网址| 少妇人妻偷人精品一区二区 | 久久久免费高清视频| 亚洲另类在线一区| 巨乳女教师的诱惑| 男人的j进女人的j一区| 狠狠爱免费视频| 在线视频观看日韩| 粉嫩av一区二区三区天美传媒| 亚洲精选av| 国产精品网站视频| 国产欧美黑人| 欧美成人伊人久久综合网| 怡春院在线视频| 色国产综合视频| 国产又粗又长又黄的视频| 国内精品免费**视频| 中文字幕第80页| 日韩和欧美一区二区| 国产人妻777人伦精品hd| 伊人久久大香线蕉av超碰演员| 久久本道综合色狠狠五月| 高潮久久久久久久久久久久久久| 亚洲最大的成人网| 免费毛片在线看片免费丝瓜视频 | 久久99亚洲网美利坚合众国| 久久国产精品久久久久| av网站网址在线观看| 九九热精品视频国产| 在线免费观看污| 九色精品美女在线| 蜜臀av在线| 久久久久久久久久久国产| 男人久久精品| 日韩成人xxxx| 男人天堂亚洲二区| 中文字幕9999| 在线免费观看黄色网址| 欧美成人a视频| 成人毛片在线免费观看| 亚洲国产精品va在线看黑人动漫 | 国产精品高清无码| 欧美日韩国产色站一区二区三区| 艳妇乳肉豪妇荡乳av| 亚洲电影中文字幕在线观看| 久久这里只有精品国产| 亚洲3atv精品一区二区三区| 日本美女xxx| 国产精品久久久久久福利一牛影视| 国产av一区二区三区传媒| 美腿丝袜一区二区三区| 亚洲理论中文字幕| 成人免费毛片嘿嘿连载视频| 影音先锋人妻啪啪av资源网站| 久久综合九色综合97_久久久| 先锋影音av在线| 99久久精品国产一区二区三区| 青青草视频播放| 中文字幕乱码亚洲精品一区| 午夜精品一区二区三级视频| 亚洲综合在线免费观看| 91无套直看片红桃在线观看| 久久亚洲精华国产精华液| 免费在线观看a视频| 亚洲欧美电影院| 欧美a∨亚洲欧美亚洲| 精品视频一区三区九区| av资源免费观看| 欧美日韩一区二区电影| 性欧美videos另类hd| 亚洲男人天堂网站| 亚洲小说区图片区都市| 日本高清久久天堂| 国产调教在线| 国产精品女主播| 久久婷婷国产| 台湾成人av| 欧美欧美全黄| 国产91色在线观看| www.亚洲人| 精品久久久久一区二区| 高清国产一区二区| 摸摸摸bbb毛毛毛片| 亚洲综合丝袜美腿| 影音先锋国产在线| 精品调教chinesegay| av观看在线| 国产精品稀缺呦系列在线| 卡通动漫国产精品| 99热这里只有精品免费| 综合天天久久| 免费午夜视频在线观看| 日韩黄色片在线观看| 亚洲一区二区三区四区av| 国产精品久久久一本精品| 免费成人深夜蜜桃视频| 婷婷久久综合九色国产成人| 国产精品一区二区三区在线免费观看 | 亚洲精品777| 国产美女直播视频一区| 日韩av字幕| 日本黄网免费一区二区精品| 精品一区亚洲| 亚洲欧美日韩另类精品一区二区三区| 国产精品女主播一区二区三区| 免费无码国产v片在线观看| 国产高清不卡二三区| 成熟妇人a片免费看网站| 亚洲色大成网站www久久九九| 中文在线免费看视频| 亚洲欧美成人网| 色资源二区在线视频| 国产伦理久久久| 欧美日韩亚洲一区二区三区在线| 中文字幕免费高清在线| 亚洲国产精品av| 中国女人真人一级毛片| 亚洲欧美综合v| 麻豆视频免费在线观看| 国产精品久久久久久久久免费| 猛男gaygay欧美视频| 97超碰青青草| 2021中文字幕一区亚洲| 国产在线观看成人| 精品国产凹凸成av人导航| 美足av综合网| 99在线国产| 伊人狠狠色j香婷婷综合| 人妻激情偷乱频一区二区三区 | 嫩草影院中文字幕| 国产福利精品导航| 久久久无码精品亚洲国产| 精品久久久久久综合日本欧美| 手机在线免费观看av| 国产青春久久久国产毛片| 亚洲视频1区| 蜜桃无码一区二区三区| 欧洲一区二区三区在线| 91在线观看| 亚洲伊人久久综合| 午夜日韩电影| 婷婷丁香激情网| 国产精品免费aⅴ片在线观看| 一级特黄aaa大片| 日韩精品在线观看一区| 最新欧美色图| 婷婷亚洲婷婷综合色香五月| 麻豆精品新av中文字幕| 亚洲精品乱码久久久久久久| 狠狠干狠狠久久| 精品人妻一区二区三区换脸明星| 色综合久综合久久综合久鬼88| 蜜臀国产一区| 中文字幕日韩精品久久| 翔田千里一区二区| 亚洲最大视频网| 福利视频一区二区| 黄色av网址在线免费观看| 国产欧美va欧美va香蕉在| 在线看片不卡| 午夜一区二区三区免费| 欧美四级电影网| 丰满大乳少妇在线观看网站| 欧美不卡福利| 黄网站免费久久| 天天综合网入口| 中文字幕亚洲综合久久筱田步美| 日韩精品视频在线看| av观看免费在线| 亚洲欧美视频在线观看视频| 少妇高潮一区二区三区99小说| 国产精品美女www爽爽爽视频| 欧美日本精品| 欧美激情视频二区| 亚洲国产另类久久精品 | 亚洲a∨日韩av高清在线观看| 尤物精品在线| 天海翼在线视频| 亚洲人成电影网站色xx| 中文一区二区三区四区|