set
/**
- 数据结构: set
- 集合: 可以存储任何数据类型,并且是唯一的(不重复的值) */ ```javascript const set1 = new Set();
// 往set1中添加数据 set1.add(100); set1.add(“A String”); set1.add({name:”Henry”}); set1.add(true); // set1.add(100); // 不可以重复添加,无作用
// console.log(set1);
const set2 = new Set([1,true,’string’]); // console.log(set2);
// 计算set1中的数据个数 // console.log(set1.size);
// 检查set中是否拥有对应的值 // console.log(set1.has(100)); // console.log(set1.has(50 + 50));
// console.log(set1.has({name:”Henry”}));// 匹配的是地址 // console.log({name:”Henry”} === {name:”Henry”});
// 删除set中的内容 set1.delete(100); // console.log(set1);
// for … of 遍历set // for(let item of set1){ // console.log(item); // }
// forEach 遍历 // set1.forEach((value) =>{ // console.log(value); // })
// 将set转换为array const setArray = Array.from(set1); console.log(setArray);
## map /**
- 数据结构: map
- 键值对: 与对象不同的是键和值可以是任何类型 */
```javascript const map1 = new Map();
// 设置key键 const key1 = ‘some string’, key2 = {}, key3 = function(){};
// 为key设置value值 map1.set(key1,’Value of key1’); map1.set(key2,’Value of key2’); map1.set(key3,’Value of key3’);
// 根据key获取对应的value // console.log(map1.get(key1),map1.get(key2),map1.get(key3));
// 获取对应的value数量 // console.log(map1.size);
// for…of遍历map1中的key and value
// for(let [key,value] of map1){
// console.log(${key} = ${value});
// }
// only key // for(let key of map1.keys()){ // console.log(key); // }
// only value // for(let value of map1.values()){ // console.log(value); // }
// forEach遍历map1
// map1.forEach((value,key) => {
// console.log(${key} = ${value});
// })
// 将map1转化为正常的数组 // const keyValueArray = Array.from(map1); // console.log(keyValueArray);
// 将map1中的key转化为数组 // const keyArray = Array.from(map1.keys()); // console.log(keyArray);
// 将map1中的value值转换为数组 const valueArray = Array.from(map1.values()); console.log(valueArray);
Class
/**
- Class
- 万事皆对象 */
// function Car(options){ // this.title = options.title; // }
// Car.prototype.drive = function(){ // return “Vroom”; // }
// const car = new Car({title:”BMW”}); // // console.log(car); // // console.log(car.drive());
// // 继承 // function Toyota(options){ // Car.call(this,options); // this.color = options.color; // }
// Toyota.prototype = Object.create(Car.prototype); // Toyota.prototype.constructor = Toyota;
// const toyota = new Toyota({color:”red”,title:”Focus”}); // console.log(toyota); // console.log(toyota.drive());
// es6 class Car{ constructor({title}){ this.title = title; } drive(){ return ‘vroom’; } }
// const car = new Car({title:”BMW”}); // console.log(car); // console.log(car.drive());
class Toyota extends Car{ constructor(options){ super(options); this.color = options.color; } }
const toyota = new Toyota({color:”red”,title:”Focus”});
console.log(toyota); console.log(toyota.drive());