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

国产在线观看黄| 国产一级片毛片| 亚洲精品大片| 亚洲精品国产一区二区精华液| 成人羞羞国产免费| 黄色小视频在线免费看| 国产精品午夜一区二区三区| 在线播放中文字幕一区| 欧妇女乱妇女乱视频| 午夜视频www| 久久99精品久久久久久久久久久久| 欧美激情免费观看| 乱色588欧美| 波多野结衣视频在线观看| 91精品国产视频| 亚洲精品二三区| 在线观看日本一区二区| 91av久久| 日韩一区有码在线| 欧美成人免费在线| 亚洲精品福利网站| 久久精品国内一区二区三区| 97国产在线视频| 亚洲波多野结衣| 最新国产一区| 精品动漫一区二区三区在线观看| 国产又粗又长又大的视频| 欧美大片黄色| 亚洲视频一区在线观看| 日韩国产欧美精品| 日韩精品福利| 国产精品 日产精品 欧美精品| 国产精品久久久久久久久免费看 | 久久精品久久久久久国产 免费| 国产视频久久久久久| 高清在线一区二区| 欧美色图在线观看| 无码日韩人妻精品久久蜜桃| 丝袜诱惑一区二区| 亚洲国产一区二区三区| 400部精品国偷自产在线观看| 91女主播在线观看| 久久久五月婷婷| 蜜桃视频日韩| 日韩av成人| 久久综合久久综合久久| 久久久久久久免费| 四虎电影院在线观看| 不卡在线视频中文字幕| 国产精品一码二码三码在线| 国产精品综合在线| 精品一区二区三区在线观看| 国产精品永久免费在线| 中文字幕网址在线| 麻豆成人av在线| 成人国产精品久久久| 在线观看免费视频a| 美国一区二区三区在线播放| 国产精品自产拍在线观看| 在线免费a视频| 久久成人精品无人区| 国产日韩视频在线观看| 国产又黄又大又粗的视频| 激情综合亚洲精品| 91嫩草国产在线观看| 亚洲成人77777| www.欧美色图| 欧美一区视久久| 91在线视频免费看| 亚洲人成精品久久久久久| 中文字幕の友人北条麻妃| 日本理论片午伦夜理片在线观看| 亚洲超碰精品一区二区| 美女av免费在线观看| 日韩一区二区三区免费| 欧美久久久久免费| 亚洲图片欧美另类| 亚洲福利天堂| 自拍视频国产精品| 久久久精品视频免费观看| 极品中文字幕一区| 日本午夜人人精品| 国产精品无码久久久久成人app| 国产一区二区调教| 极品校花啪啪激情久久| yw193.com尤物在线| 亚洲视频一区在线观看| 精品国产一二三四区| 精品视频一区二区三区四区五区| 3d成人动漫网站| 91福利视频免费观看| 欧美在线导航| 日韩中文字幕欧美| 福利一区二区三区四区| 日本特黄久久久高潮| 91视频免费进入| 精彩国产在线| 一区二区三区四区在线播放 | 亚洲精品xxxx| 亚洲熟女少妇一区二区| 亚洲国产免费看| 国产精品电影久久久久电影网| 国产suv精品一区二区69| 91免费在线看| av 日韩 人妻 黑人 综合 无码| 亚洲国产欧美日本视频| 欧美一区二区人人喊爽| 中文字幕在线看高清电影| 婷婷综合五月| 国产999在线观看| 成人久久精品人妻一区二区三区| 国产欧美综合色| 久久久久久久久久久99| 日韩毛片免费视频一级特黄| 日韩av网站电影| 成人免费视频国产免费观看| 丝袜亚洲另类欧美| 国产欧美一区二区视频 | 欧美裸身视频免费观看| 乱子伦一区二区三区| www.成人网.com| 2021国产视频| 欧美aaaaaaaa| 亚洲最新av在线| 久久夜色精品国产噜噜亚洲av| 国产精品88888| 亚洲v国产v在线观看| 亚洲男人av| 亚洲国产另类 国产精品国产免费| 婷婷激情四射网| 日韩不卡一二三区| 乱一区二区三区在线播放| av日韩国产| 精品日韩成人av| xxxx日本少妇| 国产美女一区二区三区| 一区二区三区av在线| 中文字幕21页在线看| 亚洲第一精品夜夜躁人人爽| 免费人成视频在线| 国产精品一区二区x88av| 久久av秘一区二区三区| 色综合视频一区二区三区日韩| 亚洲天堂第二页| 中文字幕在线观看视频免费| 久久综合久久综合亚洲| av网址在线观看免费| 亚洲a级精品| 热久久免费国产视频| 欧美套图亚洲一区| 91久久香蕉国产日韩欧美9色| 在线免费观看日韩av| 中文在线一区| 欧美1o一11sex性hdhd| 欧美成人精品一区二区男人小说| 亚洲美女久久久| www.久久网| 亚洲欧洲成人精品av97| 一级黄色高清视频| 综合激情在线| 国产一区高清视频| 亚洲欧美韩国| 中文字幕日韩视频| 国产伦精品一区二区三区视频痴汉| 自拍偷拍欧美激情| 无码国产精品久久一区免费| 国产欧美高清| 日本一区二区三区视频在线播放| 91精品国产经典在线观看| 日韩中文字幕在线| 精品毛片一区二区三区| 午夜电影网亚洲视频| 国产特级黄色录像| 久久成人免费网| 日本一区午夜艳熟免费| 最新精品国偷自产在线| 成人欧美一区二区三区在线湿哒哒| 天堂av在线电影| 亚洲精品小视频在线观看| 在线免费一区二区| 亚洲人xxxx| 30一40一50老女人毛片| 久久99久久久欧美国产| 99久久免费观看| 国产永久精品大片wwwapp| 91麻豆桃色免费看| 阿v视频在线| www.日本久久久久com.| 日本高清视频免费看| 在线视频你懂得一区二区三区| av最新在线观看| 97久久人人超碰| 91看片在线免费观看| 国色天香一区二区| 日韩精品大片| 国产精品视屏| 国产日韩在线观看av| xxxx在线视频| 日韩中文字幕国产| 三区在线视频| 欧美刺激午夜性久久久久久久| aaaaaa毛片| 亚洲曰韩产成在线| 日本成人午夜影院| 成人av资源在线| 亚洲一区二区偷拍| 久久久夜精品| 轻点好疼好大好爽视频| 日韩精品一区二区三区免费观看| 国产精品推荐精品| 国产精品国产亚洲精品| 国产精品mp4| av电影在线免费| 超碰精品一区二区三区乱码| 福利片在线观看| 亚洲国产精品va在线看黑人| 国产乱码久久久久| 欧美三级蜜桃2在线观看| 中文字字幕在线中文| 亚洲在线免费播放| 成年人一级黄色片| 国产精品久久看| 午夜时刻免费入口| 91小视频在线观看| 国产精品果冻传媒| 国产一区二区精品在线观看| 天天干天天综合| 天堂在线亚洲视频| 丰满爆乳一区二区三区| 欧美日本不卡高清| 大桥未久一区二区三区| 色小子综合网| 亚洲午夜精品福利| 欧美限制电影| 日韩理论片在线观看| 国产欧美日韩一区二区三区四区 | 亚洲免费999| 日韩高清不卡一区二区| 十八禁视频网站在线观看| 国产免费成人| 亚洲色欲综合一区二区三区| 国产精品久久国产愉拍| 噜噜噜久久亚洲精品国产品麻豆| 亚洲东热激情| 亚洲不卡中文字幕无码| 日韩午夜一区| 国产精品宾馆在线精品酒店| 国产亚洲毛片在线| 91国视频在线| 亚洲欧美日韩精品一区二区| 男人天堂999| 日韩国产欧美三级| 亚洲这里只有精品| 久久国产麻豆精品| 人妻激情偷乱视频一区二区三区| 国产乱对白刺激视频不卡| 善良的小姨在线| 丁香另类激情小说| 一级欧美一级日韩片| 久久先锋资源网| 影音先锋男人在线| 综合久久国产九一剧情麻豆| 久久久久久久福利| 五月婷婷综合在线| 一二三区免费视频| 欧美蜜桃一区二区三区| 精品国产九九九| 亚洲国产精品99| 嫩草在线播放| www.国产一区| 搞黄网站在线看| 热久久这里只有精品| 黑人一区二区三区| 99久久99久久| 亚洲成人一品| www亚洲国产| 一本色道88久久加勒比精品| 人妻丰满熟妇av无码区app| 精品中文字幕一区二区小辣椒| 精品人妻二区中文字幕| 久久久午夜精品理论片中文字幕| fc2ppv在线播放| 偷拍与自拍一区| 中文字幕有码无码人妻av蜜桃| 日韩三级av在线播放| 欧美高清成人| 久久影视免费观看| 欧美aa在线| 成人免费黄色网| 欧美亚洲色图校园春色| youjizz.com亚洲| 99视频精品| 日本在线观看视频一区| 久久亚洲一级片| 久久精品一区二区三区四区五区| 性做久久久久久免费观看欧美| 中文字幕免费高清在线观看| 精品久久久久99| 午夜激情视频在线观看| 亚州av一区二区| 国产精品一区二区精品视频观看| 久久av一区二区| 一区二区三区四区电影| 天天摸天天碰天天添| 国产成人精品免费| 伊人影院综合网| 午夜日韩在线电影| 国产精品国产三级国产aⅴ| 日韩成人在线视频| 在线观看h网| 国产精品爽爽爽| 亚洲婷婷影院| 日韩小视频网站| 国产乱子轮精品视频| 日本精品在线观看视频| 天天射综合影视| www.精品久久| 久久久精品一区二区| av在线一区不卡| 欧美连裤袜在线视频| 亚洲第一精品影视| www.污网站| 国产精品久久精品日日| 午夜久久久久久久久久影院| 日韩精品极品在线观看| 91九色在线播放| 豆国产97在线| 欧美国产高潮xxxx1819| 中文字幕亚洲影院| 中文字幕一区二区不卡| 中文字幕永久在线观看| 在线视频免费一区二区| 小黄鸭精品aⅴ导航网站入口| 久久久水蜜桃| 夜夜爽av福利精品导航| 国产黑丝在线观看| 亚洲第一福利视频在线| 超碰在线观看99| 欧美大片免费看| 伊人精品综合| 国产免费裸体视频| 风间由美性色一区二区三区| 久久国产在线观看| 亚洲成人国产精品| 丁香花在线电影小说观看| 国产精品乱子乱xxxx| 日韩视频一区| 欧美无人区码suv| 色综合久久九月婷婷色综合| 欧美伦理影视网| 国产精品视频午夜| 婷婷综合网站| 亚洲成人福利视频| 亚洲午夜久久久久中文字幕久| 亚洲免费成人在线| 亚洲18私人小影院| 羞羞色国产精品网站| 日韩视频免费在线播放| 中文一区二区完整视频在线观看| 在线中文字幕网站| 久久精品99久久香蕉国产色戒| 91成人精品观看| 成人污网站在线观看| 成人av在线影院| 青青国产在线观看| 国产一区二区三区久久精品| 国产精品一区二区免费福利视频| 中国一区二区三区| 国产v综合v亚洲欧| 制服.丝袜.亚洲.中文.综合懂色| 亚洲日本成人网| 亚洲精品aaa| 隔壁人妻偷人bd中字| 久久精品一区二区三区不卡牛牛| 糖心vlog精品一区二区| 美女扒开尿口让男人操亚洲视频网站| 91九色鹿精品国产综合久久香蕉| 欧美日韩一道本| 国产精品女主播在线观看| 国产高清视频免费观看| 欧美最顶级丰满的aⅴ艳星| 日韩久久久久| 久久久男人的天堂| 91极品视觉盛宴| 亚洲综合图区| 欧美午夜精品理论片a级大开眼界| 久久99九九99精品| 超碰中文字幕在线| 久久久国产精品一区| 欧洲亚洲一区二区三区| 亚洲另类第一页| 欧美午夜激情在线| 成人福利片网站| 欧美在线一二三区| 国产91精品一区二区| 欧美高清69hd| 57pao成人国产永久免费| 亚洲精彩视频| 精品少妇一区二区三区免费观 | 性插视频在线观看|