1.let const
2.解构赋值(频繁使用对象、方法、数组元素可以使用解构赋值)
let [a,b]=[s1,s2]
3.模版字符串,里面可以使用换行符,可以使用${变量}输出变量
4.允许在大括号中,直接写入变量和函数(方法变量),作为对象的属性和方法
5.箭头函数()=>{}(1.如果形参只有一个,小括号可以省略
2.函数体只有一条语句,花括号可以省略,函数的返回值为这条语句的执行结果
3.箭头函数this指向声明时所在作用域下的值
4.箭头函数不能作为构造函数实例化
5.不能使用arguments)
6.rest参数,获取函数实参,作用和argument类似
(rest参数必须是最后一个形参)
minus(a,b,...c){console.log(a,b,c)}
7.扩展运算符,也是...,可以入参用,将数组变成三个参数,合并变量所代表的对象用,不加...给变量会将变量也合并进去
8.symbol,第七种数据类型
1.symbol的值是唯一的,解决命名冲突问题
2.symbol值不能与其他数据进行运算
3.symbol不能用for...in遍历,可以用Reflect.ownKeys获取对象的所有键名
4.Symbol.for('尚硅谷')创建的两个值是一样的,Symbol()创建的两个值是不一样的
symbol有10个左右内置值
9.迭代器、生成器(可用promise替换)
(学习略过了迭代器,生成器,set)
10.promise
11.set新的数据类型,可以给数组去重,有它自己的方法size(返回元素个数)add(增加一个新元素)delete(删除元素,返回boolean值)
(has(检测是否包含某个元素,返回boolean值)、清空集合,返回undefined)(可用扩展运算符和for of进行遍历)
12.map新的数据结构,类似于数组里面每一项元素 全部换成键值对,键值对的键没有限制,甚至键可以为键值对,内置方法size、set、get、has、clear(可用扩展运算符和for of进行遍历)
13.class类 1constructor(定义构造函数初始化 方法触发) 2extends继承父类 3static定义静态方法和属性 4.调用父级构造方法
5.父类方法可以重写
14.object.assign
15.模块化export import
16.async await
17.rest es6只针对数组 es9提供对象
function connect({host, port, ...user}) {
console.log(host);
console.log(port);
console.log(user);
}
connect({
host: '127.0.0.1',
port: 3306,
username: 'root',
password: 'root',
type: 'master'
});
18.动态important
19.私有属性