数组新增扩展:
1.扩展运算符 ...
2.构造函数新增的方法:
Array.from()将两类对象转为真正的数组:类似数组的对象和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)
Array.of()用于将一组值,转换为数组
3.实例对象新增的方法:
copyWithin()
**find()、findIndex()**
**fill()**
entries(),**keys(),**values()
**includes()**
flat(),flatMap()
4.数组的空位
ES6 明确将空位转为undefined
5.排序稳定性:
将sort()默认设置为稳定的排序算法
对象新增扩展:
1.属性的简写:当对象键名与对应值名相等的时候,可以进行简写
方法也能够进行简写,简写的对象方法不能用作构造函数,否则会报错
2.属性名表达式:ES6 允许字面量定义对象时,将表达式放在括号内
3.super关键字:this关键字总是指向函数所在的当前对象,ES6 又新增了另一个类似的关键字 super,指向当前对象的原型对象
4.扩展运算符应用:在解构赋值中,未被读取的可遍历的属性,分配到指定的对象上面
注意:解构赋值必须是最后一个参数,否则会报错
5.属性的遍历:
for...in:循环遍历对象自身的和继承的可枚举属性(不含 Symbol 属性)
Object.keys(obj):返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含 Symbol 属性)的键名
Object.getOwnPropertyNames(obj):回一个数组,包含对象自身的所有属性(不含 Symbol 属性,但是包括不可枚举属性)的键名
Object.getOwnPropertySymbols(obj):返回一个数组,包含对象自身的所有 Symbol 属性的键名
Reflect.ownKeys(obj):返回一个数组,包含对象自身的(不含继承的)所有键名,不管键名是 Symbol 或字符串,也不管是否可枚举
6.对象新增的方法:
Object.is()
**Object.assign()**
Object.getOwnPropertyDescriptors()
Object.setPrototypeOf(),Object.getPrototypeOf()
**Object.keys(),**Object.values(),Object.entries()
Object.fromEntries()
函数新增扩展:
1.参数:
(1)es6允许为函数的参数设置默认值
(2)函数的形参是默认声明的,不能使用let或const再次声明
(3)参数默认值可以与解构赋值的默认值结合起来使用
2.属性:
length属性将返回没有指定默认值的参数个数
name属性返回该函数的函数名
3.作用域
4.严格模式
5.**箭头函数**