<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>

          ES2019中6個(gè)好用的功能

          共 3122字,需瀏覽 7分鐘

           ·

          2021-03-03 22:14

          String.prototype.trimStart() 和 String.prototype.trimEnd()

          第一個(gè)trimStart()將刪除字符串開頭的所有空格。第二個(gè)trimEnd()將刪除字符串末尾的所有空格。


          'JavaScript'.trimStart()// Output://'JavaScript'

          ' JavaScript'.trimStart()// Output://'JavaScript'

          ' JavaScript '.trimStart()// Output://'JavaScript '

          'JavaScript '.trimStart()// Output://'JavaScript '

          'JavaScript'.trimEnd()// Output://'JavaScript'
          ' JavaScript'.trimEnd()// Output://' JavaScript'
          ' JavaScript '.trimEnd()// Output://' JavaScript'
          'JavaScript '.trimEnd()// Output://'JavaScript'

          Function.prototype.toString()

          toString()方法已經(jīng)存在了一段時(shí)間。此方法的作用是使您可以輸出函數(shù)的代碼。ES2019的不同之處在于此方法如何處理注釋和特殊字符(例如空格)。


          過(guò)去,toString()方法刪除了注釋和空白。因此,該函數(shù)的輸出版本可能看起來(lái)與原始代碼不一樣。ES2019的發(fā)行版將不再發(fā)生這種情況。從現(xiàn)在開始,toString()方法所返回的值將與原始值匹配,包括注釋和特殊字符相同。


          // Before ES2019:function myFunc/* is this really a good name? */() {  /* Now, what to do? */}
          myFunc.toString()// Output:// "function myFunc() {}"

          // After ES2019:function myFunc/* is this really a good name? */() { /* Now, what to do? */}
          myFunc.toString()// Output:// "function myFunc/* is this really a good name? */() {// /* Now, what to do? */// }"

          Array.prototype.flat() 和 Array.prototype.flatMap()

          // 創(chuàng)建一個(gè)數(shù)組:const myArray = ['JavaScript', ['C', 'C++', ['Assembly', ['Bytecode']]]]
          // 數(shù)組展平:let myFlatArray = myArray.flat(1)
          // 輸出:console.log(myFlatArray)// Output:// [ 'JavaScript', 'C', 'C++', [ 'Assembly', [ 'Bytecode' ] ] ]
          // 數(shù)組展平多層級(jí)的數(shù)組:let myInfiniteFlatArray = myArray.flat(Infinity)
          // 輸出:console.log(myInfiniteFlatArray)// Output:// [ 'JavaScript', 'C', 'C++', 'Assembly', 'Bytecode' ]


          除了flat()方法之外,還有flatMap()方法。您可以將此方法視為的高級(jí)版本flat()。區(qū)別在于該flatMap()方法是flat()與map()方法結(jié)合使用。因此,在展平數(shù)組時(shí),可以調(diào)用回調(diào)函數(shù)。


          // 創(chuàng)建一個(gè)數(shù)組:const myArray = ['One word', 'Two words', 'Three words']
          // 空格分割字符串:const myMappedWordArray = myArray.map(str => str.split(' '))
          // 輸出的是多維數(shù)組:console.log(myMappedWordArray)// Output:// [ [ 'One', 'word' ], [ 'Two', 'words' ], [ 'Three', 'words' ] ]

          // 使用 flatMap():const myArray = ['One word', 'Two words', 'Three words']
          // 先空格分割字符串后展平數(shù)組:const myFlatWordArray = myArray.flatMap(str => str.split(' '))
          // 輸出的是一維數(shù)組:console.log(myFlatWordArray)// Output:// [ 'One', 'word', 'Two', 'words', 'Three', 'words' ]

          Object.fromEntries()

          當(dāng)您需要將某個(gè)對(duì)象轉(zhuǎn)換為數(shù)組時(shí),可以使用單個(gè)方法entries()來(lái)完成。但是,直到現(xiàn)在,還沒(méi)有一種方法可以可以輕松地還原此方法。多虧了ES2019的功能,這將不再是一個(gè)問(wèn)題。還原此方法可以使用fromEntries()方法。


          // 創(chuàng)建一個(gè)數(shù)組:const myArray = [['name', 'Joe'], ['age', 33], ['favoriteLanguage', 'JavaScript']]
          // 將數(shù)組轉(zhuǎn)換為對(duì)象:const myObj = Object.fromEntries(myArray)
          // 輸出:console.log(myObj)// Output:// {// name: 'Joe',// age: 33,// favoriteLanguage: 'JavaScript'// }

          // 創(chuàng)建一個(gè)map:const myMap = new Map( [['name', 'Spike'], ['species', 'dog'], ['age', 3]])
          // 將數(shù)組轉(zhuǎn)換為對(duì)象:const myObj = Object.fromEntries(myMap)
          // 輸出:console.log(myObj)// Output:// {// name: 'Spike',// species: 'dog',// age: 3// }

          try...catch

          以前,當(dāng)您要使用時(shí)try...catch,還必須使用參數(shù)。即使沒(méi)有使用它,您也必須將異常作為參數(shù)傳遞。ES2019帶來(lái)的一個(gè)變化是它使此選項(xiàng)成為可選。如果您不想處理該異常,則可以使用不帶參數(shù)的catch塊。


          // Before ES2019:try {  // Do something.} catch (e) {  // 沒(méi)有使用參數(shù),但是參數(shù)是必傳的}
          // After ES2019:try { // Do something.} catch { // 不需要任何參數(shù)了}
          瀏覽 33
          點(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>
                  人人操人人妻人人爽 | 在线播放高清无码 | www.91蝌蚪 | www.人人撸 | 大香蕉黄色电影网站 |