es2015 中的类
class Pro {
constructor(name){
this.name=name
}
say(){
console.log(`hi,${this.name}`);
}
// 静态方法
static create(name){
return new Pro(name)
}
}
// const p = new Pro("zom")
const p = Pro.create("zom")
p.say() //hi,zom
extends (继承), super() 调用父类的方法
// 继承
class Student extends Pro{
constructor(name,number){
super(name)
this.number= number
}
hello(){
super.say() //调用 Pro 类的say()
console.log(`my number is ${this.number} `);
}
}
const s = new Student("pink","100")
s.hello() // hi,pink
// my number is 100
Set 使用
//Set 使用
const s= new Set();
s.add(1).add(2).add(3).add(4)
console.log(s.size); // 4 大小
console.log(s.has(5)); // false 查找
console.log(s.delete(4)); // true 删除
// 给数组去重
const arr =[1,2,5,3,4,2,1]
const res = Array.from(new Set(arr))
console.log(res); //[ 1, 2, 5, 3, 4 ]
Map
// Map 使用,任意对象作键, key(键),value(值)
const m = new Map()
const tom = {name:"tom"}
m.set(tom,90)
m.set("one","ss")
console.log(m); //Map(1) { { name: 'tom' } => 90, 'one' => 'ss' }
console.log(m.get(tom)); //90
m.forEach((value,key)=>{
console.log(key,value); //{ name: 'tom' } 90 , one ss
})
Symbol
// Symbol 使用,Symbol是独一无二的属性名
const s = Symbol()
console.log(s); // Symbol()
console.log(typeof s); // symbol
console.log(s === Symbol()); // false
console.log(Symbol() === Symbol()); //false
console.log(Symbol("tom"));
iterator 迭代器
// iterator 迭代器
const set = new Set(["one","two","three"])
const iterator = set[Symbol.iterator]()
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());