ES6學習筆記 二

2022-09-06 14:18:21 字數 1969 閱讀 2530

1.set

基本用法

es6提供了新的資料結構set,它類似於陣列,但是成員的值都是唯一的,沒有重複的值

set本身是乙個建構函式,用來生成set資料結構

const s = new

set();

[2,3,5,4,5,2,2].foreach(x =>s.add(x))

for(let i of s)

//2 3 5 4

上面**通過add()方法向set結構加入成員,結果表明set結構不會新增重複的值

set函式可以接受乙個陣列(或者具有 iterable 介面的其他資料結構)作為引數,用來初始化。

//

例一const set = new set([1, 2, 3, 4, 4]);

[...set]

//[1, 2, 3, 4]

//例二

const items = new set([1, 2, 3, 4, 5, 5, 5, 5]);

items.size //5

//例三

const set = new set(document.queryselectorall('div'));

set.size

//56

//類似於

const set = new

set();

document

.queryselectorall('div')

.foreach(div =>set.add(div));

set.size

//56

上面**中,例1和例2都是set函式接受陣列作為引數,例3是接受類似陣列的物件作為引數

上面**也展示了一種去除陣列重複成員的方法。

//

去除陣列的重複成員

[...new set(array)]

上面的方法也可以用於,去除字串裡面的重複字元。

[...new set('ababbc')].join('')

//"abc"

向 set 加入值的時候,不會發生型別轉換,所以5"5"是兩個不同的值。set 內部判斷兩個值是否不同,使用的演算法叫做「same-value-zero equality」,它類似於精確相等運算子(===),主要的區別是nan等於自身,而精確相等運算子認為nan不等於自身。

let set = new

set();

let a =nan;

let b =nan;

set.add(a);

set.add(b);

set

//set

上面**向 set 例項新增了兩個nan,但是只能加入乙個。這表明,在 set 內部,兩個nan是相等。

另外,兩個物件總是不相等的。

let set = new

set();

set.add({});

set.size //1

set.add({});

set.size

//2

上面**表示,由於兩個空物件不相等,所以它們被視為兩個值。

array.from方法可以將 set 結構轉為陣列。

const items = new set([1, 2, 3, 4, 5]);

const array = array.from(items);

這就提供了去除陣列重複成員的另一種方法。

function

dedupe(array)

dedupe([1, 1, 2, 3]) //

[1, 2, 3]

ES6學習筆記 二

function fun url,timeout 60,callback url為必須引數,其餘為可選。es5 嚴格模式下arguments物件將不會發生變化,es6中如果引數使用了預設引數,則無論是否使用嚴格模式,arguments物件都將與es5嚴格模式保持一致 物件將與命名引數分離 funct...

es6學習筆記(二)

一.let命令宣告變數 1.用法 let宣告的變數只在所處位置的 塊內有效 example1.js for var i 0 i 2 i console.log i i console.log a a console.log b b 執行結果會報錯 2.不存在變數提公升 example1.js con...

es6 學習筆記(二)Symbol

symbol類似於enum,可以起到識別符號的作用。主要可以應用在一下場景。1.可以作為屬性名 var mysymbol symbol var a a.mysymbol hello a mysymbol undefined a mysymbol hello 要注意symbol值作為物件屬性名時,不能...