ES7 ES8 ES9 ES10新特性

ES7 新特性

  • Array.prototype.includes()方法來判斷一個數(shù)組是否包含一個指定的值,根據(jù)情況,如果包含則返回true,否則返回false。
    在 es7 之前有兩種方式 判斷一個數(shù)組中是否包含某個元素代碼如下:
第一種方式:  indexof()
var arr = [1, 2, 3, 18, 20];
for(var=i; i<arr.length;i++){
if(arr.indexof(i)===-1){
 等于-1 就是存在
}
}
注意:(這個方式有一個缺點(diǎn)就是導(dǎo)致對 NaN的誤判)

第二種方式:
find() 遍歷返回第一個符合條件的數(shù)組成員的元素和 findIndex()  遍歷返回第一個符合條件的數(shù)組成員的下標(biāo)

var arr = [1, 2, 3, 100, 101, 102];
      var newarr = arr.find((item, index) => {
        return item > 50;
      });
      console.log(newarr); // 返回第一個符合條件的數(shù)組元素

var arr = [1, 2, 3, 100, 101, 102];
      var newarr = arr.findIndex((item, index) => {
        return item > 50;
      });
      console.log(newarr); // 返回第一個符合條件的數(shù)組元素的下標(biāo)

ES7新特性 arr.includes() 找到數(shù)組中是否包含某一項 ,返回的是布爾值

var arr = [1,2,3,4,5];
console.log(arr.includes(1))  true

es7 求冪運(yùn)算符:

console.log(Math.pow(2, 10)) // 輸出1024

Object.values方法返回一個數(shù)組,成員是參數(shù)對象 key value當(dāng)中的value,組成的是一個數(shù)組自身的(不含繼承的)所有可遍歷(enumerable)屬性的鍵值。

var obj = { a: "吃飯", b: "睡覺", c: "打豆豆~" };
      var arr = Object.values(obj);
      console.log(arr);  結(jié)果: ["吃飯", "睡覺", "打豆豆~"]

Object.entries()方法返回一個數(shù)組,成員是參數(shù)對象自身的(不含繼承的)所有可遍歷(enumerable)屬性的鍵值對數(shù)組。這個特性我們后面介紹ES10的Object.fromEntries()還會再提到。

 var obj = { a: "吃飯", b: "睡覺", c: "打豆豆~" };
      var arr = Object.entries(obj);
console.log(arr); // 結(jié)果
      [
        [a, "吃飯"],
        [b, "睡覺"],
        [c, "打豆豆~"]
      ];

ES8 引入了 Object.getOwnPropertyDescriptors() 返回指定對象所有自身屬性(非繼承屬性)的描述對象。

ES5的Object.getOwnPropertyDescriptor()方法會返回某個對象屬性的描述對象

const obj = {
  name: '浪里行舟',
  get bar () {
    return 'abc'
  }
}
console.log(Object.getOwnPropertyDescriptors(obj))

該方法的引入目的,主要是為了解決Object.assign()無法正確拷貝get屬性和set屬性的問題。

const source = {
  set foo (value) {
    console.log(value)
  },
  get bar () {
    return '浪里行舟'
  }
}
const target2 = {}
Object.defineProperties(target2, Object.getOwnPropertyDescriptors(source))
console.log(Object.getOwnPropertyDescriptor(target2, 'foo'))

ES9新特性 for await of

for of 能夠遍歷Symbol.iterator的同步迭代數(shù)據(jù),但是不能遍歷Symbol.iterator異步迭代數(shù)據(jù)
ES9 新增的 for await of 可以用來處理異步的迭代數(shù)據(jù)

//   for await of遍歷
function Gen (time) {
  return new Promise(function (resolve, reject) {
    setTimeout(function () {
      resolve(time)
    }, time)
  })
}
async function test () {
  let arr = [Gen(2000), Gen(100), Gen(3000)]
  for await (let item of arr) {
    console.log(Date.now(), item.then(console.log))
  }
}
test()
//結(jié)果: 
// 1575536194608 2000
// 1575536194608 100
// 1575536195608 3000

擴(kuò)展運(yùn)算符的使用 ...

var obj = {
        a: "吃飯",
        b: "睡覺",
        c: "打豆豆~"
      };
      var ipt = {
        ...obj,
        d: "看電影"
      };
      console.log(ipt);

剩余運(yùn)算符的使用 ...rest

 var obj = {
        a: "吃飯",
        b: "睡覺",
        c: "打豆豆~"
      };
      var { a, ...rest } = obj;
      console.log(a, rest); // 結(jié)果: 吃飯 {b: "睡覺", c: "打豆豆~"}b: "睡覺"c: "打豆豆~"

Array.prototype.flat()

將多維數(shù)組轉(zhuǎn)為一維數(shù)組

flat() 默認(rèn)值是1 ,意思將二維數(shù)組轉(zhuǎn)為一維數(shù)組
當(dāng)flat() 是2,意思將三維數(shù)組轉(zhuǎn)為一維數(shù)組

將二維數(shù)組轉(zhuǎn)為一維數(shù)組

var arr = [1, 2, 3, [4, 5, 6,]];
      var arr1 = arr.flat(1);
      console.log(arr1);

將三維數(shù)組轉(zhuǎn)為一維數(shù)組

var arr = [1, 2, 3, [4, 5, 6, [7, 8, 9]]];
      var arr1 = arr.flat(2);
      console.log(arr1);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概要 64學(xué)時 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,847評論 0 3
  • 三,字符串?dāng)U展 3.1 Unicode表示法 ES6 做出了改進(jìn),只要將碼點(diǎn)放入大括號,就能正確解讀該字符。有了這...
    eastbaby閱讀 1,668評論 0 8
  • 轉(zhuǎn)自前端大全 前言 從 ECMAScript 2016(ES7)開始,版本發(fā)布變得更加頻繁,每年發(fā)布一個新版本,好...
    DoEmpty閱讀 1,024評論 0 2
  • 一、屬性的簡介表示法 ES6允許直接寫入變量和函數(shù)作為對象的屬性和方法。允許在對象中只寫屬性名,不寫屬性值。這時,...
    了凡和纖風(fēng)閱讀 373評論 0 0
  • 孩子總是會問,爸爸干嘛去了?爸爸為什么上班?為什么賺錢?等等,在刨根問底的追問一下,我曾經(jīng)說過,他實(shí)現(xiàn)夢想去了。幾...
    回之家閱讀 165評論 0 1

友情鏈接更多精彩內(nèi)容