PART 01
类
ES6 中有 class 语法。值得注意是,这里的 class 不是新的对象继承模型,它只是原型链的语法糖表现形式。
class Animal {
constructor(color,age){
this.color = color;
this.age = age;
}
yeil(){
alert("我大声咆哮");
}
}
PART 02
模块
在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>
PART 03
可迭代对象
set方法
var s2 = new Set([1, 2, 3,2]);
console.log(s2);
// {1, 2, 3}
add delete clear has size
ES6提供了Map数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键
var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
set get delete clear has size
WeakMap 就是一个 Map,只不过它的所有 key 都是弱引用,意思就是 WeakMap 中的东西垃圾回收时不考虑,使用它不用担心内存泄漏问题。
另一个需要注意的点是,WeakMap 的所有 key 必须是对象。
PART 04
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);
}
PART 05
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);
})