ES7,ES8,ES10新特性

ES7

ES7在ES6的基礎上增加了三項內容

  • 求冪運算符 **
console.log(3 ** 2 ) // 9 
  • Array.prototype.includes()方法
includes()的作用是查找一個值在不在數組中,接受兩個參數:搜索值和搜索的開始索引。如果沒有傳遞參數默認的索引是0
// 下面的這兩種方法是等價
[1,2,3].indexOf(2) > -1 // true;
[1,2,3].includes(2) // true;
兩種方法都使用的是 === 操作符作值比較,但是includes方法不同的是:兩個NaN會被認爲是相等的。不遵循嚴格模式的處理,但是indeOf會遵循嚴格模式的處理

ES8

  • async ,await異步解決方案
    • async和await本質上是Generator的語法糖,相比於Promise來說async和await更加簡潔
// Promise寫法
function promise(){
	var pro = new Promise((resolve)=>{....}).then(val=>{...})
	return pro
}
promise().then(()=>{....})
// async 寫法
async function getData(){ let pro =  await promise() }
  • Object.entries():
    • 將對象的可枚舉屬性與值按照二維數組的方式返回,目標對象是數組,則會將數組的下標作爲鍵值返回
Object.entries({a:1,b:2}) // [["a", 1], ["b", 2]]
  • Object.values()
    • 將對象中的值按照一維數組的方式返回
Object.entries({a:1,b:2}) // [1, 2]
  • 字符串填充padStart(),padEnd()
let str = fanfan
str.padStart(9,'6') // 666fanfan
str.padEnd(9,'6') // fanfan666
如果第一個參數的小於字符串的長度則不會填充

ES10

  • flat()
    • 按照指定的深度遍歷數組,將所有元素與便利到的子數組中的元素合併爲一個新的數組返回。
    • 使用:
      • 數組降維,去除數組的空項
let arr = [1, 2, [3, 4]]
arr.flat() // [1, 2, 3, 4]
// 還可以設置深度
let arr = [1, 2, [3, 4, [5, [6]]]]
arr.flat(3) // [1, 2, 3, 4, 5, 6]
// 如果我們不確定到底有多少層可以直接使用Infinity
  • flatMap()
    • 首先使用映射函數映射沒個元素,然後將結果壓縮成一個新數組,
let arr = [1, 2, 3, 4];
arr.flatMap(x=>[x * 2]) // [2, 4, ]

發現一個寫的比較全的_,引用一下謝謝博主上沅兮: https://juejin.im/post/5ca2e1935188254416288eb2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章