类
ES6 中有 class 语法。值得注意是,这里的 class 不是新的对象继承模型,它只是原型链的语法糖表现形式。
特点:
- 用class声明,本质是function
- constructor 构造
- extends 继承
- new 实例化
- 类名建议首字母大写
举例说明:
class todo{
constructor(gogo) {
this.name = gogo
}
out(){
return this.name+"我出来啦!"
}
}
class wuhu extends todo{
constructor(name,color){
super(name)
this.color = color;
}
skill(){
return `我的名字是${this.name}是${this.color}`
}
}
//实例化类
var come = new todo("animal")
var cat = new wuhu("修猫猫","三花")
var dog = new wuhu("修狗狗","黑白")
console.log(come,cat,dog);
console.log(dog.out(),cat.out());
console.log(dog.skill(),cat.skill());
console.log(dog.name,come.name);
运行结果:
用class创建了一个叫wuhu(芜湖~)的类,这个类继承(extends )一个叫todo的类,所以cat和dog也可以调用todo的方法(out),dog实例化类的时候传了一个name值,而在wuhu里用super调用了todo的构造函数(constructor ),所以dog的name变成了 '修狗狗' ,come的name则是 'animal' 。
模块化
在html中模块化引入js前提:
1. 有http服务器 (文件打开必须要是http协议,不能说D: C:file协议)
2. <script type="module">
导出语法:
导出一个 export {name}
导出多个 export {name,fun}
导出默认 export default Cat
导入语法:
import {name} form url
import {name,fun} form url
导入默认 import Cat from url
合并默认 import Cat,{name,fun} from url
导入所有as关键字 import * as utils from url
可迭代对象
set 集合
特点:内容不重复
初始化: var s1 = new Set([1,2,3])
利用set特性去重: arr = [...new Set(arr)]
常用方法
add 添加
delete 删除
clear 清空
has 检查是否有
size 长度
WeakSet 集合
特点:
内容不重复
内容必须是引用对象
new WeakSet({...})
Map 图
类似对象
特点:键可以是任意类型
初始化
new Map([['name',20],['age',18],[8,200]])
方法:
set 添加
get 获取
has 检测
size 长度
delete 删除
clear 清空
WeakMap
特点:key都是弱引用
for of
for in 循环用于遍历数组,类数组或对象,ES6中新引入的for of循环功能相似,不同的是每次循环它提供的不是序号而是值。
keys() 键集合
values() 值的集合
entries () 键和值的集合
Promise
ES6 对 Promise 有了原生的支持,一个 Promise 是一个等待被异步执行的对象,当它执行完成后,其状态会变成 resolved 或者rejected。