es6进阶

1.类 class

ES6 中有 class 语法。值得注意是,这里的 class 不是新的对象继承模型,它只是原型链的语法糖表现形式。 函数中使用 static 关键词定义构造函数的的方法和属性:

class Animal {      

 constructor(color,age){            

this.color = color;            

this.age = age;        }        

yeil(){            

alert("我大声咆哮");      

 }  

 }

class Cat extends Animal{        

constructor(color,age,name){            

super(color,age); //调用Animal构造函数constructor

           this.name = name;    

   }      

 skill(){      

     alert("我超级会卖萌");  

     }    }    

// 实例化猫类  

 var c1 = new Cat("黄色",2,"kitty");  

 var c2 = new Cat("黑色",1,"可乐");  

 c1.skill();  

 c1.yeil();

2.模块化

在html中模块化引入js

1. 有http服务器

2. <script type="module">

export 导出

var name = "mumu";

export{name};

function say(){ alert('我喜欢'+name)}

export {say};

import 导入

<script type="module">  

  import {name,say} from './js/utils.js';  

  say();

</script>

导出默认

class Now{  

   constructor(arg) {     

    this.date = new Date().toLocaleString()  

   }

}

export default Now

导入默认 import Now from './js/utils.js';

alert(new Now().date)

3.set

数组去重

var s2 = new Set([1, 2, 3,2]); console.log(s2); // {1, 2, 3}

常用方法 add  delete  clear  has  size

let arr = [1,2,1,2,5,2,5];

arr =[...new Set(arr)]         

console.log(arr)

WeakSet结构与Set类似,也是不重复的值的集合。 WeakSet的成员只能是对象,而不能是其他类型的值

ES6提供了Map数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键 var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]); 方法 set get  delete  clear  has  size WeakMap 就是一个 Map,只不过它的所有 key 都是弱引用,意思就是 WeakMap 中的东西垃圾回收时不考虑,使用它不用担心内存泄漏问题。 另一个需要注意的点是,WeakMap 的所有 key 必须是对象。没有size

4.for of

for in 循环用于遍历数组,类数组或对象,ES6中新引入的for of循环功能相似,不同的是每次循环它提供的不是序号而是值。

var arr1 = ["mumu","age","木木","曾庆林"];

for(v of arr1){     console.log(v); }

 keys()        键集合  

 values()     值得集合  

 entries ()    键和值得集合  

  for(k of arr1.keys()){         console.log(k);     }    

for(v of arr1.values()){        console.log(v);     }  

  for([k,v] of arr1.entries()){         console.log(k,v);     }

5.promise承诺

ES6 对 Promise 有了原生的支持,一个 Promise 是一个等待被异步执行的对象,当它执行完成后,其状态会变成 resolved 或者rejected。

promise     承诺

resolve     完成解决

reject       拒绝兑现

2s 后对控制台说 其实我观察你

3s 后对控制台说 很久了

5s 后对控制台说  我很中意你啊

function say(msg,time){

    return new Promise((resolve,reject)=>{

        setTimeout(()=>resolve(msg),time)     

})

}

say('其实我观察你',2000)

.then(res=>{

    console.log(res);

    return say('很久了',3000)

})

.then(res=>{

    console.log(res);

    return say('我很中意你啊',5000)

})

.then(res=>{

    console.log(res);

})

实现网络请求

 function getApi(url){

    return new Promise((resolve,reject)=>{

        $.ajax({

            url,

            dataType:"jsonp",

            success(res){resolve(res)  },

            error(err){reject(err)}

         })

     })

 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值