2019-08-20 13:25:03 3805浏览
今天千锋扣丁学堂HTML5培训老师给大家分享一篇关于ES6中Symbol、Set和Map用法详解,结合实例形式详细分析了ES6中Symbol、Set和Map的功能、使用方法及相关操作注意事项,下面我们一起来看一下吧。
	
	
let s = Symbol(); typeof s // symbol
let s1 = Symbol('a');
let s2 = Symbol('b');
s1.toString() // 'Symbol(a)'
s2.toString() // 'Symbol(b)'
let s1 = Symbol('a');
let s2 = Symbol('a');
s1 === s2 //false
let s = Symbol(); s + '2' // Cannot convert a Symbol value to a string Boolean(s) // true !s // false
let s = Symbol();
let obj = {};
obj[s] = 'hello world';
//或者
let obj = {
  [s] : 'hello world'
}
obj.s  // undefined
obj[s] // hello world
var obj = {};
var a = Symbol('a');
var b = Symbol('b');
obj[a] = 'Hello';
obj[b] = 'World';
obj.c = 'Mine';
for( let key in obj ){
  console.log(key)     // c
}
var objectSymbols = Object.getOwnPropertySymbols(obj);
console.log(objectSymbols) // [Symbol(a), Symbol(b)]
Symbol.for("name") === Symbol.for("name")
// true
Symbol("name") === Symbol("name")
// false
var s1 = Symbol.for("name");
Symbol.keyFor(s1) // "name"
var s2 = Symbol("name");
Symbol.keyFor(s2) // undefined
let s = new Set([1,2,3,4,5,2,2,3,5]); s // [1,2,3,4,5]
let s = new Set([1,2,3]);
s.add(4)  //[1,2,3,4]
s.add(4)  //[1,2,3,4]
s.add(5)  //[1,2,3,4,5]
s.add('5') //[1,2,3,4,5,"5"]
s.add(NaN) //[1,2,3,4,5,"5",NaN]
s.add(NaN) //[1,2,3,4,5,"5",NaN]
// 去除数组的重复成员 [...new Set(array)] [...new Set([1,2,2,3,3,4,5,5])] //[1,2,3,4,5]
s.add(1).add(2).add(2); // 注意2被加入了两次 s.size // 2 s.has(1) // true s.has(2) // true s.has(3) // false s.delete(2); s.has(2) // false
let set = new Set(['red', 'green', 'blue']);
for (let item of set.keys()) {
console.log(item);
}
// red
// green
// blue
for (let item of set.values()) {
console.log(item);
}
// red
// green
// blue
for (let item of set.entries()) {
console.log(item);
}
// ["red", "red"]
// ["green", "green"]
// ["blue", "blue"]
const m = new Map();
const o = { str : 'Hello World'};
m.set(o, 'content')
m.get(o) // "content"
m.has(o) // true
m.delete(o) // true
m.has(o) // false
const map = new Map(); const k1 = ['a']; const k2 = ['a']; map.set(k1, 111).set(k2, 222); map.get(k1) // 111 map.get(k2) // 222
//Map转数组
const map = new Map();
map.set('name' , 'hello').set({},'world');
[...map] //[["name","hello"],[{},"world"]]
//数组转Map
const map = new Map([["name","hello"],[{},"world"]]);
map // {"name" => "hello", Object {} => "world"}
	
	
                           
  
	
【关注微信公众号获取更多学习资料】 【扫码进入HTML5前端开发VIP免费公开课】