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

你可能錯過的現代 JavaScript 特性

開發 前端
盡管我在過去 7 年中幾乎每天都在寫 JavaScript 代碼,但不得不承認,我實際上并不是很注意 ES 語言的發布聲明。 async/await 和 Proxies 之類的主要特性是一回事,但是每年都有穩定的小規模、漸進式的改進在不斷涌現,因為總有一些東西需要學習。

 盡管我在過去 7 年中幾乎每天都在寫 JavaScript 代碼,但不得不承認,我實際上并不是很注意 ES 語言的發布聲明。 async/await 和 Proxies 之類的主要特性是一回事,但是每年都有穩定的小規模、漸進式的改進在不斷涌現,因為總有一些東西需要學習。

[[281396]]

所以在本文中,我收集了一些現代 JavaScript 特性,這些特性在首次發布時并沒有帶來太多的關注。其中一些只是編碼質量的提高,而另外一些確實很方便,可以減少很多代碼量。以下是你可能會錯過的一些信息:

ES2015

二進制和八進制

在 JavaScript 中,二進制操作并不常見,但有時也會遇到,否則無法切實解決你的問題。你可能正在為低功耗設備編寫高性能代碼,將位壓縮到本地存儲中,在瀏覽器中進行像素 RGB 操作,或者必須處理緊密打包的二進制數據格式。

這可能意味著有很多工作需要對二進制數字進行處理,我一直覺得用十進制也能做這些事。好吧,ES6 為此添加了一個二進制數字格式:0b

  1. const binaryZero = 0b0; 
  2. const binaryOne  = 0b1; 
  3. const binary255  = 0b11111111; 
  4. const binaryLong = 0b111101011101101; 

這使得處理二進制標志非常容易:

  1. // Pizza toppings 
  2. const olives    = 0b0001; 
  3. const ham       = 0b0010; 
  4. const pineapple = 0b0100; 
  5. const artechoke = 0b1000; 
  6.  
  7. const pizza_ham_pineapple = pineapple | ham; 
  8. const pizza_four_seasons  = olives | ham | artechoke; 

對于八進制數也是如此。在 JS 世界中,這些領域有點小眾,但在網絡和某些文件格式中卻很常見。現在你可以用語法 0o 處理八進制。

Number.isNaN()

不要與 window.isNaN() 混淆,這是一種有著更直觀行為的新方法。

你會發現,經典的 isNaN 有一些有趣的怪癖:

  1. isNaN(NaN)              === true 
  2. isNaN(null)             === false 
  3. isNaN(undefined)        === true 
  4. isNaN({})               === true 
  5. isNaN('0/0')            === true 
  6. isNaN('hello')          === true 

是什么導致了這種結果?首先,這些參數實際上都不是 NaN。與以往一樣,問題出在大家“最喜歡的” JavaScript 特性上:類型強制。通過 Number 函數將 window.isNaN 的參數強制為數字。

好吧,新的 Number.isNaN() 靜態方法解決了所有問題。它會一勞永逸地返回你提供的自變量與 NaN 的相等性。這是絕對明確的:

  1. Number.isNaN(NaN)       === true 
  2. Number.isNaN(null)      === false 
  3. Number.isNaN(undefined) === false 
  4. Number.isNaN({})        === false 
  5. Number.isNaN('0/0')     === false 
  6. Number.isNaN('hello')   === false 

函數簽名: Number.isNaN : (value: any) => boolean

ES2016

指數(冪)運算符

很高興有一個字面量的語法來表示冪:

  1. 2**2 === 4 
  2. 3**2 === 9 
  3. 3**3 === 27 

(這很奇怪,因為我確信 JavaScript 已經有了這個 —— 我可能一直在考慮 Python)

Array.prototype.includes()

這個功能值得關注,如果你過去幾年一直在寫 array.indexOf(x)!== -1 這樣的代碼,那么現在可以用新的 includes 方法:

  1. [1, 2, 3].includes(2)    === true 
  2. [1, 2, 3].includes(true) === false 

includes 用 Same Value Zero Algorithm(幾乎與嚴格等式 === 相同)進行檢查,但它可以處理 NaN 值。像相等檢查一樣,它將通過引用而不是內容來比較對象:

  1. const object1 = {}; 
  2. const object2 = {}; 
  3.  
  4. const array = [object1, 78, NaN]; 
  5.  
  6. array.includes(object1) === true 
  7. array.includes(object2) === false 
  8. array.includes(NaN)     === true 

includes 可以通過第二個參數 fromIndex 讓你提供一個偏移量:

  1. // positions   0  1  2  3  4 
  2. const array = [1, 1, 1, 2, 2]; 
  3.  
  4. array.includes(1, 2) === true 
  5. array.includes(1, 3) === false 

太順手了。

函數簽名: Array.prototype.includes : (match: any, offset?: Int) => boolean

ES2017

共享數組緩沖區和原子操作

這是一對很棒的功能,如果你要與 web workers 一起做大量的工作,那么這些特性將被證明是無價的。它們使你可以直接在進程之間共享內存,并通過設置鎖來避免資源爭搶的情況。

它們都是相當復雜的 API 功能,因此這里不回對其進行概述,但是可以通過 Sitepen 的文章了解更多信息。目前有一些瀏覽器還不支持,但有望在未來幾年內得到改善。

ES2018

強大的正則表達式

ES2018引入了一整套正則表達式特性:

Lookbehind 匹配項(前向匹配)

在支持它的運行時中,你現在可以用正則表達式來進行前向匹配。例如要查找所有以美元開頭的數字:

  1. const regex = /(?<=\$)\d+/; 
  2. const text  = 'This cost $400'
  3. text.match(regex) === ['400'

關鍵是新的 lookbehind 搜索組與lookahead 搜索組是一對邪惡的雙胞胎:

  1. Look ahead:  (?=abc) 
  2. Look behind: (?<=abc) 
  3.  
  4. Look ahead negative:  (?!abc) 
  5. Look behind negative: (?<!abc) 

不幸的是,目前還沒有什么方法可以為較舊的瀏覽器支持新的后向語法,所以你目前只能在 Node 上用它。

你可以命名捕獲組

正則表達式真正強大的功能是能夠挑選出子匹配項,并用它們進行一些簡單的解析。但是直到不久前,我們只能通過數字來引用子匹配項,例如:

  1. const getNameParts  = /(\w+)\s+(\w+)/g; 
  2. const name          = "Weyland Smithers"
  3. const subMatches    = getNameParts.exec(name); 
  4.  
  5. subMatches[1]     === 'Weyland' 
  6. subMatches[2]     === 'Smithers' 

現在有了一種語法,可以通過在要命名的每個組的括號的開頭放置 ? 來分配這些子匹配項(或捕獲組)的名稱:

  1. const getNameParts  = /(?<first>\w+)\s(?<last>\w+)/g; 
  2. const name          = "Weyland Smithers"
  3. const subMatches    = getNameParts.exec(name); 
  4.  
  5. const {firstlast} = subMatches.groups 
  6. first             === 'Weyland' 
  7. last              === 'Smithers' 

不幸的是,目前暫時只有 Chrome 和 Node 支持。

現在可以用點匹配新行

你只需要提供 /s 標志,例如 /someRegex./s、`/anotherRegex./sg。

ES2019

Array.prototype.flat() & flatMap()

我很高興在 MDN 上看到這些內容。

簡單地說,flat() 將多維數組按指定的最大 depth 展平:

  1. const multiDimensional = [ 
  2.     [1, 2, 3], 
  3.     [4, 5, 6], 
  4.     [7,[8,9]] 
  5. ]; 
  6.  
  7. multiDimensional.flat(2) === [1, 2, 3, 4, 5, 6, 7, 8, 9] 

flatMap 本質上是一個 map,也是深度為 1 的 flat。當從映射函數返回一個數組,但你不希望結果為嵌套數據結構時,用它很方便:

  1. const texts = ["Hello,""today I""will""use FlatMap"]; 
  2.  
  3. // with a plain map 
  4. const mapped = texts.map(text => text.split(' ')); 
  5. mapped === ['Hello', ['today''I'], 'will', ['use''FlatMap']]; 
  6.  
  7. // with flatmap 
  8. const flatMapped = texts.flatMap(text => text.split(' ')); 
  9. flatMapped === ['Hello''today''I''will''use''FlatMap']; 

未綁定的捕獲

現在你可以編寫 try/catch 語句,而不必綁定拋出的錯誤:

  1. try { 
  2.   // something throws 
  3. } catch { 
  4.   // don't have to do catch(e) 

順便說一句,對你不關心的 e 的值的捕獲行為,有時稱為 Pokémon 異常處理。 ‘因為你要捕獲所有的’!

字符串修剪方法

很小但是很好用:

  1. const padded         = '          Hello world   '
  2. padded.trimStart() === 'Hello world   '
  3. padded.trimEnd()   === '          Hello world'
責任編輯:華軒 來源: segmentfault
相關推薦

2021-05-15 08:30:40

DevOps測試趨勢

2025-01-10 08:00:00

JavaScript開發編程語言

2023-04-09 23:37:31

JavaScript開發

2020-11-20 07:54:22

Java 特性語句

2022-02-22 23:39:15

JavaScript編程語言Web

2020-03-09 10:10:02

AI 數據人工智能

2022-03-09 08:14:24

CSS容器container

2020-04-03 19:21:59

JavaScript編程語言開發

2018-08-21 09:00:31

Android Pie功能開發者

2024-01-03 15:59:56

Linux發行版

2020-05-09 08:48:21

JavaScript原生方法代碼

2020-11-16 12:09:25

Python開發工具

2022-01-17 22:33:37

Java特定類型

2021-10-09 10:50:30

JavaScript編程開發

2018-02-25 11:04:31

2018-02-07 16:02:21

AI人工智能商用

2017-11-07 21:58:25

前端JavaScript調試技巧

2020-11-03 09:51:04

JavaScript開發 技巧

2022-10-17 15:47:19

JavaScript開發Web

2024-06-04 08:45:50

點贊
收藏

51CTO技術棧公眾號

国产精品视频看| 亚洲调教视频在线观看| 色婷婷综合中文久久一本| 欧洲亚洲一区二区| 97国产成人无码精品久久久| 一区二区不卡| 国产91精品久久久久久久网曝门| 欧美精品一区在线播放| 中文字幕无码人妻少妇免费| av成人在线看| 亚洲国产精品麻豆| 性欧美.com| 日韩性xxxx| 国内久久精品视频| 国产成人97精品免费看片| 午夜精品福利在线视频| 蜜臀91精品国产高清在线观看| 欧美一区二区三区视频免费播放 | 不卡日本视频| 精品国产99国产精品| 国产色视频在线播放| 国产乱码午夜在线视频| 1区2区3区欧美| 欧美精品一区在线| 男人天堂网在线视频| 久久精品国产亚洲高清剧情介绍| 4388成人网| 久久精品一区二区三| 欧美1级2级| 一区二区免费视频| 亚洲伊人婷婷| 国产在线观看免费| 日韩精品电影一区亚洲| 久久久久久久国产| 污污的视频在线免费观看| 蜜乳av综合| 日韩大片免费观看视频播放| xxxx国产视频| 精品视频在线播放一区二区三区| 专区另类欧美日韩| 性欧美videosex高清少妇| 青青操视频在线| av一二三不卡影片| 国产精品免费一区二区| 国产av一区二区三区精品| 自拍欧美日韩| 日韩一中文字幕| 九一在线免费观看| 欧美先锋资源| 中文字幕精品久久| 纪美影视在线观看电视版使用方法| 日韩最新在线| 亚洲欧美在线磁力| 91久久免费视频| 亚洲福利网站| 亚洲视频在线免费看| 成人午夜福利一区二区| 精品在线91| 亚洲视频视频在线| 国产又黄又粗视频| 色婷婷色综合| 久久综合免费视频| 免费无遮挡无码永久在线观看视频| 亚洲天堂一区二区三区四区| 久久精品免费电影| 青青草原在线免费观看| 国内久久视频| 欧美有码在线观看视频| 无码人妻精品一区二| 人妖欧美一区二区| 成人在线视频福利| 国产精品视频看看| 一区二区日韩| 日韩激情视频在线| 中文字幕成人动漫| 水蜜桃久久夜色精品一区| 日韩中文字幕不卡视频| 色老板免费视频| 亚洲无线一线二线三线区别av| 91亚洲精品乱码久久久久久蜜桃| 精品国产精品网麻豆系列| youjizz.com日本| 乱中年女人伦av一区二区| 亚洲女人天堂视频| 激情黄色小视频| av影视在线| 欧美性xxxxxxx| 亚洲欧美视频二区| 伊人久久影院| 亚洲男人第一av网站| 亚洲欧美va天堂人熟伦| 婷婷久久综合| 91精品国产91久久久久| 中文字幕在线观看视频一区| 国产91在线|亚洲| 久久久婷婷一区二区三区不卡| 成人精品一区二区| 亚洲免费色视频| 一本色道久久综合亚洲精品婷婷| 色婷婷视频在线观看| 黑人巨大精品欧美一区二区免费| 日韩精品视频一二三| 成人性生交大片免费看中文视频| 一区二区三区天堂av| 久久久一二三区| 麻豆精品久久精品色综合| 动漫一区二区在线| 永久免费在线观看视频| 亚洲国产精品综合小说图片区| 美女一区二区三区视频| 国产精品45p| 日韩一区二区三区观看| 野外性满足hd| 欧美日本一区| 国产美女主播一区| 日本私人网站在线观看| 亚洲男人天堂av| 韩国中文字幕av| 欧美丰满少妇xxxx| 人妻体体内射精一区二区| 国内视频在线精品| xvideos亚洲| 男人天堂2024| 成人av在线一区二区三区| 在线免费观看一区二区三区| 日韩激情电影| 日韩久久免费av| 91av手机在线| 久久婷婷av| 久久综合九色综合久99| 欧美寡妇性猛交xxx免费| 中文一区二区在线观看| 人人妻人人做人人爽| 国产电影一区| 日韩美女在线视频| 无码人妻精品中文字幕| 首页欧美精品中文字幕| 狠狠色伊人亚洲综合网站色| 国产羞羞视频在线播放| 亚洲一区影音先锋| www.超碰97.com| 国产麻豆精品久久| 欧美性受xxxx白人性爽| 国产91免费在线观看| 一区二区三区成人| 五月天六月丁香| 国产精品国产一区| 国产综合色香蕉精品| www.中文字幕久久久| 欧美视频一区二区三区…| 玖玖爱在线精品视频| 欧美激情性爽国产精品17p| 91免费版网站入口| 老司机午夜在线| 91麻豆精品国产91久久久| 一级片一级片一级片| 国产一区在线视频| 国产91视觉| 日本资源在线| 亚洲精品国产拍免费91在线| 日韩精品人妻中文字幕| 成人av免费在线播放| 免费av手机在线观看| 国产suv精品一区二区四区视频| 欧美激情高清视频| 欧美一级淫片aaaaaa| 欧美日韩午夜视频在线观看| 欧美性xxxx图片| 天堂一区二区在线免费观看| 日韩中文字幕av在线| 久久精品97| 久久91亚洲精品中文字幕| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 午夜精品久久久久久久| a天堂中文字幕| 免费人成网站在线观看欧美高清| 最新视频 - x88av| 亚洲欧美韩国| 一本色道久久综合亚洲精品小说 | 91精品国产高清一区二区三区| 亚洲不卡在线播放| 成人黄色av电影| 亚洲人成无码www久久久| 亚洲国产一区二区三区网站| 韩国三级日本三级少妇99| 国产中文字幕在线视频| 91精品久久久久久蜜臀| 日韩精品国产一区二区| 国产精品网曝门| jjzzjjzz欧美69巨大| 视频在线在亚洲| 伊人再见免费在线观看高清版| jizz欧美| 欧美日韩国产成人| 麻豆影视在线| 欧美一区二区免费视频| 国产午夜精品久久久久| 亚洲黄色av一区| 成人在线一级片| 国产aⅴ精品一区二区三区色成熟| 色欲av无码一区二区人妻| 国产精品久久天天影视| 国产一区二区免费电影| 在线观看电影av| 日韩高清av在线| 91国偷自产中文字幕久久| 亚洲国产美女搞黄色| 午夜精品久久久久99蜜桃最新版| 波多野洁衣一区| 国产美女视频免费看| 先锋影音久久久| 欧美这里只有精品| av在线不卡免费观看| 国产一区视频观看| 成人在线啊v| 国产精品99导航| 忘忧草在线日韩www影院| 欧美成人精品xxx| 77777影视视频在线观看| 日韩电影大片中文字幕| 国产91视频在线| 欧美日韩成人高清| 无码人妻熟妇av又粗又大| 午夜视频久久久久久| 国产这里有精品| 国产精品久久毛片av大全日韩| 久久久久久久久久久国产精品| 国产91精品免费| 亚洲一级片免费观看| 青青草一区二区三区| 国产性xxxx18免费观看视频| 伊人激情综合| av片在线免费| 欧美日韩国产高清| 中国女人做爰视频| 国产精品久久久久久麻豆一区软件| 天堂av一区二区| 国产精品亚洲片在线播放| 久久精品日产第一区二区三区| 国产厕拍一区| 国产视频精品网| 久本草在线中文字幕亚洲| 不卡视频一区| 99re91这里只有精品| y111111国产精品久久婷婷| 国产精品亚洲欧美一级在线| 成人啪啪免费看| 电影91久久久| 亚洲一区二区三区xxx视频| 羞羞的视频在线观看| 日韩视频免费在线观看| 色老头视频在线观看| 在线观看日韩av| 欧美激情免费| 久久中文字幕在线| 日本高清成人vr专区| 欧美激情xxxxx| 国产在线精彩视频| 欧美中文字幕在线| 草民电影神马电影一区二区| 国产欧美日韩精品在线观看| www 久久久| 538国产精品一区二区免费视频| 久久影院午夜精品| 欧美在线视频网| 日本欧美韩国| 91精品视频在线播放| 视频一区日韩精品| 国产伦一区二区三区色一情| 天海翼精品一区二区三区| 日本10禁啪啪无遮挡免费一区二区| 欧美日韩久久精品| 国产一区一区三区| 蜜桃a∨噜噜一区二区三区| 日本一区二区三区免费观看| 操欧美老女人| 在线观看污视频| 久久精品系列| 亚洲视频一二三四| 成人av片在线观看| 国产熟女一区二区| 亚洲另类春色国产| av资源免费观看| 亚洲在线中文字幕| 亚洲一区欧美在线| 一区二区成人在线| 毛片基地在线观看| 欧美日韩一本到| 六月丁香综合网| 国产一区二区三区视频在线观看| 国产精品久久麻豆| 国产91成人在在线播放| 粉嫩av国产一区二区三区| 精品欧美日韩| 91精品国产乱码久久久久久久| 日本中文字幕亚洲| 日本一不卡视频| 亚洲色偷偷色噜噜狠狠99网| 欧美激情中文字幕| 国产污视频在线看| 欧美日韩国产另类不卡| 天堂成人在线观看| 日韩中文字幕在线视频| 一本大道色婷婷在线| 91福利视频导航| 亚洲精品不卡在线观看| 青娱乐一区二区| 亚洲午夜电影| 中文字幕一区久久| 久久久国产精品麻豆| 久久精品一区二区免费播放| 亚洲三级在线看| 人人草在线观看| 亚洲第一男人天堂| 国产精品一区二区三区视频网站| 日韩免费视频在线观看| 国产毛片久久久| 91网站在线观看免费| 麻豆一区二区在线| 成人免费网站黄| 午夜激情综合网| 亚洲xxxx天美| 久久的精品视频| 成人精品三级| 日本亚洲导航| 亚洲综合欧美| 午夜男人的天堂| 亚洲国产va精品久久久不卡综合 | 欧美xingq一区二区| 午夜视频在线| 国产精品国内视频| 91麻豆精品| 香蕉久久夜色| 日本网站在线观看一区二区三区 | 日韩美女一区二区三区在线观看| 国产精品50p| 99精品欧美一区二区三区综合在线| 久久久精品人妻一区二区三区四| 欧美一区二区三区四区在线观看| 免费av在线播放| 成人精品一区二区三区| 区一区二视频| 亚洲一区在线不卡| 日本一区二区久久| 中文字幕av影视| 最好看的2019的中文字幕视频| 久久久成人av毛片免费观看| 欧美亚洲另类在线一区二区三区| 国产日韩欧美三区| 日本黄大片一区二区三区| 国产亚洲精品7777| 天天爱天天做天天爽| 一本一道久久a久久精品逆3p| 日本一道高清亚洲日美韩| 日韩三级电影免费观看| 日本美女一区二区三区| 林心如三级全黄裸体| 欧美区在线观看| 国产鲁鲁视频在线观看特色| 91精品国产综合久久久久久丝袜| 午夜久久影院| 日本成人中文字幕在线| 国产一区高清在线| 精品一区在线观看视频| 日韩视频国产视频| 97在线视频免费观看完整版| 久久综合一区| 免费成人美女在线观看.| 美国黄色片视频| 日韩欧美中文字幕一区| av电影在线地址| 欧美亚洲免费在线| 久久精品国产亚洲一区二区三区| 国产av 一区二区三区| 精品国精品国产| 快播电影网址老女人久久| 亚洲最新在线| 不卡视频在线看| 在线播放成人av| 色综合天天狠天天透天天伊人| 老司机成人在线| 日韩av片网站| 一区二区欧美在线观看| 免费一级在线观看| 亚洲自拍欧美色图| 国产日韩欧美一区| 91香蕉一区二区三区在线观看| 精品av综合导航| 456亚洲精品成人影院| 一级黄色片播放| 久久久久国产精品厨房| 国产同性人妖ts口直男| 日本欧美国产在线| 一区二区三区在线| 国产特级黄色录像| 日韩欧美美女一区二区三区| 日本成人片在线| 国产黄色片免费在线观看| 国产精品日产欧美久久久久| 欧美一级免费片|