<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ES10的13個(gè)新特性示例

          共 2065字,需瀏覽 5分鐘

           ·

          2020-03-03 23:25

          簡(jiǎn)介

          ES10是與2019年相對(duì)應(yīng)的ECMAScript版本。這個(gè)版本中的新功能沒(méi)有ES6(2015)中的那么多。但是,也不乏一些有用的功能。

          本文在簡(jiǎn)單的代碼示例中介紹了ES10提供的功能。這樣,您無(wú)需復(fù)雜的解釋即可快速了解新功能。

          當(dāng)然,需要具備JavaScript的基礎(chǔ)知識(shí)才能完全理解所介紹的新功能。

          ES2019中的JavaScript新功能包括:

          • Array#{flat,flatMap}

          • Object.fromEntries

          • String#{trimStart,trimEnd}

          • Symbol#description

          • try { } catch {} // 可選的錯(cuò)誤參數(shù)綁定

          • JSON ? ECMAScript

          • 格式良好的 JSON.stringify

          • 穩(wěn)定的排序 Array#sort

          • 新版 Function#toString

          • 新增 BigInt 原始類型 (stage 3).

          • 動(dòng)態(tài)引入模塊(stage 3).

          • 標(biāo)準(zhǔn)的 globalThis 對(duì)象 (stage 3).

          • ES10 Class: private, static & public (stage 3).


          Array.flat() &?Array.flatMap()

          兩個(gè)新的數(shù)組方法:

          Array.flat() 方法創(chuàng)建一個(gè)新數(shù)組,所有子數(shù)組元素都以遞歸方式合并到該數(shù)組中,直至達(dá)到指定深度。

          Array.flatMap() 方法首先使用map函數(shù)轉(zhuǎn)換每個(gè)元素,然后將結(jié)果展平為新數(shù)組。它與map()后再調(diào)用深度為1的flat() 效果相同,但是flatMap()將兩者合并為一種方法,效率更高。

          48b7bed7b3856038dde2a8aec54d9e3a.webp

          Object.fromEntries()

          把鍵值對(duì)數(shù)組為元素的二維數(shù)組轉(zhuǎn)換為一個(gè)對(duì)象。

          ca317b73004d8ff9e64cf7967e5f4584.webp

          String.protype.matchAll()

          matchAll() 方法返回所有與正則表達(dá)式匹配字符串的結(jié)果的迭代器,包括捕獲組。

          4d9f97035e6b541f5eff16613e842f1c.webp


          String.trimStart() & String.trimEnd()

          有兩種新的String方法可從字符串中刪除空格:

          • trimStart() 方法從字符串的開(kāi)頭刪除空格。

          • trimEnd() 方法從字符串末尾刪除空格。


          ec3c239c9b2337e026a1ee8c0eb46cbf.webp


          Symbol.Description


          當(dāng)創(chuàng)建符號(hào)時(shí),可以提供一個(gè)字符串作為描述。在ES10中,有一個(gè)獲取描述的訪問(wèn)器。


          cbfe13897824fcaf3ae48cff987047b7.webp


          可選的 Catch 參數(shù)變量


          過(guò)去,try / catch語(yǔ)句中的catch子句需要一個(gè)變量。現(xiàn)在,它允許開(kāi)發(fā)人員使用try / catch而不創(chuàng)建未使用的error變量綁定。


          ada1b7251478d88fbbf7c98cfaa9faad.webp


          JSON?ECMAScript
          在ES10之前的版本中,不接受非轉(zhuǎn)義的行分隔符U+2028和段落分隔符U+2029。
          • U+2028是段落分隔符。

          • U+2029是行分隔符。


          23a2f1fdc797ab8775bf87729491aafe.webp


          格式良好的 JSON.stringify()

          JSON.stringify() 可能返回U+D800和U+DFFF之間的字符,來(lái)作為沒(méi)有等效UTF-8字符的值。但是,JSON格式需要UTF-8編碼。解決方案是,將未配對(duì)的替代代碼點(diǎn)表示為JSON轉(zhuǎn)義序列,而不是將其作為單個(gè)UTF-16代碼單元返回。


          dd38cd9161c21d5736bf6f435171c061.webp


          穩(wěn)定的 Array.prototype.sort()
          V8的先前實(shí)現(xiàn),對(duì)包含10個(gè)以上項(xiàng)的數(shù)組使用了不穩(wěn)定的快速排序算法。

          一種穩(wěn)定的排序算法是,當(dāng)兩個(gè)具有相同鍵的對(duì)象在排序輸出中出現(xiàn)的順序,與未排序輸入中出現(xiàn)的順序相同。


          e161e588616328e97dee5caedad21a2e.webp


          新版 Function.toString()

          toString() 方法返回一個(gè)表示函數(shù)源代碼的字符串。在ES6中,當(dāng)在函數(shù)上調(diào)用toString時(shí),它將根據(jù)ECMAScript引擎返回該函數(shù)的字符串表示形式。如果可能,它將返回源代碼,否則-一個(gè)標(biāo)準(zhǔn)化的占位符。

          0ec2924404da5550c365900454885cfc.webp


          BigInt — 任意精度的整數(shù)

          BigInt是第7個(gè)原始類型,它是一個(gè)任意精度的整數(shù)。而不僅僅是在9007199254740992處的最大值。

          d9ed5f1d5e8ff7e8313b1e402cd63d75.webp


          動(dòng)態(tài)引入

          動(dòng)態(tài)import()返回所請(qǐng)求模塊的Promise。因此,可以使用async/await?將導(dǎo)入的模塊分配給變量。

          37f5b0f553e674acd2aa725adcd63a59.webp

          6dc98320f67d8a960676c91fcbe8c7e9.webp


          標(biāo)準(zhǔn) globalThis 對(duì)象

          全局 this 在ES10之前尚未標(biāo)準(zhǔn)化。在生產(chǎn)代碼中,您可以通過(guò)編寫(xiě)下邊代碼來(lái)“標(biāo)準(zhǔn)化”它:

          6175b0ea988ea451566a22a87ad5ec69.webp


          ES10 Class: private, static & public 成員變量,函數(shù)

          現(xiàn)在,新的語(yǔ)法字符#(哈希標(biāo)簽)用于直接在類中定義變量,函數(shù),getter和setter,以及構(gòu)造函數(shù)和類方法。

          d6c02855009627cff98f158068e57949.webp


          總結(jié)

          自2015年ES6出現(xiàn)以來(lái),這個(gè)語(yǔ)言就一直處于高速發(fā)展的狀態(tài)。在這篇文章中,我們回顧了ES10(2019)中出現(xiàn)的功能,并介紹了一些在ES11(2020)中將保持穩(wěn)定的功能,因?yàn)樗鼈兲幱跔顟B(tài)3,并且可能最終會(huì)在下一版中實(shí)現(xiàn)標(biāo)準(zhǔn)化。

          盡管這些功能中的許多功能對(duì)于Web應(yīng)用程序的開(kāi)發(fā)可能不是必需的,但是它們提供了通過(guò)技巧或大量冗長(zhǎng)代碼才能實(shí)現(xiàn)的可能性。




          推薦閱讀




          我的公眾號(hào)能帶來(lái)什么價(jià)值?(文末有送書(shū)規(guī)則,一定要看)

          每個(gè)前端工程師都應(yīng)該了解的圖片知識(shí)(長(zhǎng)文建議收藏)

          為什么現(xiàn)在面試總是面試造火箭?

          瀏覽 54
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲三级片网站 | 奇米色色 | 干B网站 操你逼逼逼逼 | 韩国黄色三级片 | 97日本操|