// call 和apply 都是执行函数时 传入this对象冒充
// var arr=[1,32,3,4]
// var min=Math.min(...arr);
// var min=Math.min.call(null,...arr)
// var max=Math.max.apply(null,arr);
// alert(min);
// alert(max);
//bind 创建一个新的函数 并传入this
function say(a,b){
console.log(`大家好,我的名字${this.name},今年${this.age}`)
console.log(a,b,a+b);
}
var nsay=say.bind({name:'贝',age:12},12)
//say通过bind创建一个新的函数 this为bind第一个参数,a的值是12
set特点是一个不重复数组,主要用于对数组去重
// var arr=[1,2,1,3,2,1,4,5];
// var s1=new Set(arr);
// arr=[...s1];
// arr=Array.from(s1);
// console.log(arr);
// var s=new Set([1,22,3,12,31,1,2,3]);
// console.log(s);
// console.log('size',s.size);
// console.log('是否有无',s.has(3));
// s.add(44);
// console.log(s);
// s.delete(1);
// console.log(s)
// for (let i of s){
// console.log(i);
// }
map类似于对象,但与对象又有区别主要区别在于:
// 长度 size
// 添加 set
// 获取 get
// remove()
// 变量for of
var obj = {"b":100,"a":"贝","2":"best","1":"good"};
console.log(obj);
var map = new Map([["b",100],["a","贝"],[2,"best"],[1,"good"]])
console.log(map);
symbol 符号特点
// 初始化 s1=symbol('blue')
// var obj={[s1]:"贝"};
// symbol.for('blue')==symbol.for('blue') true
// symbol('blue')==symbol('blue') False
var arr=["我爱","我的","祖国"];
//默认遍历是value
for (let item of arr){
console.log(item);
}
//keys 键名的集合
for (let key of arr.keys()){
console.log(key);
}
//value 值的集合
for (let val of arr.values()){
console.log(val);
}
//entries键与值的结合
for (let [key,val] of arr.entries()){
console.log(key,val);
}
class animals{
constructor(name) {
this.name=name;
}
running(){
console.log('我会走会跑,主人你在哪里')
}
}
ES6中面向对象实现类继承
class Dog extends animals{
constructor(name) {
super(name);
//this 类的实例
}
//构造函数
bark(){
console.log("汪汪汪")
}
}
var d1=new Dog("大黄");
var d2=new Dog("旺财");