本帖最后由 AreYouGlad 于 2018-1-3 16:25 编辑
Set
预览名称 | 宿主 | 类型 | 作用 | size | Set | property | 集合成员数量 | add | Set.prototype | method | 添加某个值 | delete | Set.prototype | method | 删除某个值 | has | Set.prototype | method | 是否存在某个值 | clear | Set.prototype | method | 清空所有值 | forEach | Set.prototype | method | 遍历值 | 演示[JavaScript] 纯文本查看 复制代码 let numSet = new Set([2, 4, 6, 2, 4, 6]); // { 2, 4, 5 }
numSet.size // 3
[JavaScript] 纯文本查看 复制代码 let numSet = new Set([2, 4, 6]);
numSet.add(4); // { 2, 4, 6 }
numSet.add(8) // { 2, 4, 6, 8 }
[JavaScript] 纯文本查看 复制代码 let numSet = new Set([10, 20, 30]);
numSet.delete(10); // { 20, 30 }
[JavaScript] 纯文本查看 复制代码 let numSet = new Set([10, 20, 30]);
numSet.has(20); // true
numSet.has(50); // false
[JavaScript] 纯文本查看 复制代码 let numSet = new Set([10, 20, 30]);
numSet.clear(); // {}
- 用来接收值的回调 { function }
- 回调中的this指向 { any }
[JavaScript] 纯文本查看 复制代码 let numSet = new Set([10, 20, 30]);
numSet.forEach(v => console.log(v));
[JavaScript] 纯文本查看 复制代码 let numSet = new Set([10, 20, 30]);
for(let v of numSet) {
console.log(v); // 10, 20, 30
}
[JavaScript] 纯文本查看 复制代码 let arr1 = [ 1, 3, 5 ];
let arr2 = [ 5, 7, 9 ];
new Set([ ...arr1, ...arr2 ]); // { 1, 3, 5, 7, 9 }
[JavaScript] 纯文本查看 复制代码 let set = new Set([1, 3, 5, 1, 3, 5]);
let arr = [...set]; // 先转为数组, 再按照下标取值
let set = new Set([1, 3, 5, 1, 3, 5]);
let arr = Array.from(set) // 也可以通过数组from方法转数组
Map 预览名称 | 宿主 | 类型 | 作用 | size | Map | property | 集合成员数量 | set | Set.prototype | method | 通过key,value形式添加新值 | get | Set.prototype | method | 通过key取值 | delete | Set.prototype | method | 通过key删除值 | has | Set.prototype | method | 是否存在某个key | clear | Set.prototype | method | 清空所有值 | forEach | Set.prototype | method | 遍历值 | 演示
- size
[JavaScript] 纯文本查看 复制代码 let numMap = new Map([
[new Date(), 100],
[{}, 200]
]);
numMap.size // 2 - set和get
[JavaScript] 纯文本查看 复制代码 let obj = { name: '张三', age: 21 };
let map = new Map();
map.set(obj, '我不认识李四');
map.get(obj) // '我不认识李四' - delete
[JavaScript] 纯文本查看 复制代码 let fibs = [1, 1, 2, 3, 5, 8];
let map = new Map();
map.set(fibs, '这是');
map.delete([1, 1, 2, 3, 5, 8]); // false
map.delete(fibs); // true - has
[JavaScript] 纯文本查看 复制代码 let date = new Date();
let map = new Map();
numSet.has(date); // false
numSet.set(date, '明月几时有,把酒问青天');
numSet.has(date); // true - clear
[JavaScript] 纯文本查看 复制代码 let numMap = new Map([
[new Date(), 100],
[{}, 200]
]);
numMap.clear() // {} - forEach
- 用来接收值的回调 { function }
- 回调中的this指向 { any }
[JavaScript] 纯文本查看 复制代码 let numMap = new Map([
[new Date(), 100],
[{}, 200]
]);
numMap.forEach((v, k) => console.log(v, k));
[JavaScript] 纯文本查看 复制代码 let numMap = new Map([
[new Date(), 100],
[{}, 200]
]);
for(let v of numMap) {
console.log(v); // 100, 200
} Promise 演示第一步第二步后续处理小结创建promise实例时传入的回调作用是为了接收yes与no方法 then方法用来添加成功回调与失败回调,失败回调可选 catch方法用来添加失败回调 Promise管理异步操作的特点是实现逻辑的解耦, 让程序更好维护 then方法后续仍可以调用,是因为每个Promise实例都有一个状态记录异步操作执行的进度,即时异步操作结束了,这个记录仍然存在
pending状态,代表正在执行异步操作,实例刚创建时的状态 resolved状态,代表异步代码执行完毕,调用yes方法后的状态 rejected状态,代表异步代码执行完毕,调用no方法后的状态
|
|