ES6 的內建物件擴充套件
阿新 • • 發佈:2020-10-18
1. ES6 的內建物件擴充套件
1.1 Array 的擴充套件方法(★★)
擴充套件運算子(展開語法)
擴充套件運算子可以將陣列或者物件轉為用逗號分隔的引數序列
let ary = [1, 2, 3]; ...ary // 1, 2, 3 console.log(...ary); // 1 2 3,相當於下面的程式碼 console.log(1,2,3);
擴充套件運算子可以應用於合併陣列
// 方法一 let ary1 = [1, 2, 3]; let ary2 = [3, 4, 5]; let ary3 = [...ary1, ...ary2]; // 方法二 ary1.push(...ary2);
將類陣列或可遍歷物件轉換為真正的陣列
let oDivs = document.getElementsByTagName('div');
oDivs = [...oDivs];
建構函式方法:Array.from()
將偽陣列或可遍歷物件轉換為真正的陣列
//定義一個集合 let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length: 3 }; //轉成陣列 let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']
方法還可以接受第二個引數,作用類似於陣列的map方法,用來對每個元素進行處理,將處理後的值放入返回的陣列
let arrayLike = { "0": 1, "1": 2, "length": 2 } let newAry = Array.from(arrayLike, item => item *2)//[2,4]
注意:如果是物件,那麼屬性需要寫對應的索引
例項方法:find()
用於找出第一個符合條件的陣列成員,如果沒有找到返回undefined
let ary = [{ id: 1, name: '張三' }, { id: 2, name: '李四' }]; let target = ary.find((item, index) => item.id == 2);//找數組裡面符合條件的值,當陣列中元素id等於2的查找出來,注意,只會匹配第一個
例項方法:findIndex()
用於找出第一個符合條件的陣列成員的位置,如果沒有找到返回-1
let ary = [1, 5, 10, 15]; let index = ary.findIndex((value, index) => value > 9); console.log(index); // 2
例項方法:includes()
判斷某個陣列是否包含給定的值,返回布林值。
[1, 2, 3].includes(2) // true [1, 2, 3].includes(4) // false
1.2 String 的擴充套件方法
模板字串(★★★)
ES6新增的建立字串的方式,使用反引號定義
let name = `zhangsan`;
模板字串中可以解析變數
let name = '張三'; let sayHello = `hello,my name is ${name}`; // hello, my name is zhangsan
模板字串中可以換行
let result = { name: 'zhangsan', age: 20, sex: '男' } let html = ` <div> <span>${result.name}</span> <span>${result.age}</span> <span>${result.sex}</span> </div> `;
在模板字串中可以呼叫函式
const sayHello = function () { return '哈哈哈哈 追不到我吧 我就是這麼強大'; }; let greet = `${sayHello()} 哈哈哈哈`; console.log(greet); // 哈哈哈哈 追不到我吧 我就是這麼強大 哈哈哈哈
例項方法:startsWith() 和 endsWith()
-
startsWith():表示引數字串是否在原字串的頭部,返回布林值
-
endsWith():表示引數字串是否在原字串的尾部,返回布林值
let str = 'Hello world!'; str.startsWith('Hello') // true str.endsWith('!') // true
例項方法:repeat()
repeat方法表示將原字串重複n次,返回一個新字串
'x'.repeat(3) // "xxx" 'hello'.repeat(2) // "hellohello"
ES6 提供了新的資料結構 Set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。
Set本身是一個建構函式,用來生成 Set 資料結構
const s = new Set();
Set函式可以接受一個數組作為引數,用來初始化。
const set = new Set([1, 2, 3, 4, 4]);//{1, 2, 3, 4}
例項方法
-
add(value):新增某個值,返回 Set 結構本身
-
delete(value):刪除某個值,返回一個布林值,表示刪除是否成功
-
has(value):返回一個布林值,表示該值是否為 Set 的成員
-
clear():清除所有成員,沒有返回值
const s = new Set(); s.add(1).add(2).add(3); // 向 set 結構中新增值 s.delete(2) // 刪除 set 結構中的2值 s.has(1) // 表示 set 結構中是否有1這個值 返回布林值 s.clear() // 清除 set 結構中的所有值 //注意:刪除的是元素的值,不是代表的索引
遍歷
Set 結構的例項與陣列一樣,也擁有forEach方法,用於對每個成員執行某種操作,沒有返回值。
s.forEach(value => console.log(value))