注:
部分方法ES6語法有瀏覽器解析差異,所以暫且以了解為主
SET
//Set 本身是一個(gè)構(gòu)造函數(shù),用來生成 Set 數(shù)據(jù)結(jié)構(gòu)
var s = new Set(['a','b','c']);
s.add('d')
s.add('d')
s.add('d')
s.add('NaN')
s.add('NaN')
console.log(s) //["a", "b", "c", "d", "NaN" ] 不會(huì)添加重復(fù)值
Set函數(shù)的方法: delete
s.delete('a');
console.log(s) //[ "b", "c", "d", "NaN" ]
console.log(s.has('b')) //true
Set函數(shù)的方法: clear
s.clear();
console.log(s) //[]
set數(shù)組方法: forEach
var s = new Set(['a','b','c']);
s.forEach(function(item,index,set){
console.log(item,index,set) // set中item與索引值相同
})
set對(duì)象方法: keys
var s = new Set(['a','b','c']);
var keys = s.keys();
console.log(keys); //{"a", "b", "c"} 谷歌瀏覽器在 版本 71.0.3578.98(正式版本) (64 位)
//{ } 在火狐瀏覽器下虐沥,為空 版本64.0.2
var s = new Set(['a','b','c']);
var values = s.values();
console.log(values); //{"a", "b", "c"} 谷歌瀏覽器在 版本 71.0.3578.98(正式版本) (64 位)
//{ } 在火狐瀏覽器下,為空 版本64.0.2
應(yīng)用范圍,利用其不添加重復(fù)項(xiàng)目的特點(diǎn)冀痕,
例如:數(shù)組去重
var arr = [1,2,3,4,5,6,7,3,2,3,4,NaN]
var s = new Set(arr); //Set構(gòu)造出來的是對(duì)象,但是不是數(shù)組
//console.log(arr instanceof Array);
arr = [...s] //將對(duì)象轉(zhuǎn)化為數(shù)組狸演,通過數(shù)據(jù)結(jié)構(gòu)的方式完成
console.log(arr);
Map
var obj1 = {a:1};
var obj2 = {b:2};
var m = new Map([['a','b']]);
console.log(m) //Map { a → "b" }
console.log(m.get('a')) //b
m.set('a',1);
console.log(m.get('a')) //1
//m.delete('a')
m.has('a')
console.log(m.has('a')) //true
//m.clear();
m.set('a',1);
m.set('b',2);
m.set('c',3);
console.log(m)
m.forEach(function(item,index,map){
console.log(item);
})
var keys = m.keys();
console.log(keys.next()) //遍歷出鍵名
console.log(keys.next()) //遍歷出鍵名
console.log(keys.next()) //遍歷出鍵名
console.log(keys.next()) //遍歷出鍵名
https://www.babeljs.cn
//---函數(shù)參數(shù)默認(rèn)值
function add(a,b=10){
return a+b;
}