- 对象的扩展
当某个属性或方法的键、值名称相同时,可以简写。
- 对象新增方法
(1)Object.is():用来比较两个值是否严格相等,与严格比较运算符(===)的行为基本一致。
(2)Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。
(3)Object.setPrototypeOf()、Object.getPrototypeOf()操作原型对象
(4)Object.keys方法,返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键名。
(5)Object.values方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值。
(6)Object.entries()方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值对数组。
(7)Object.fromEntries()方法是Object.entries()的逆操作,用于将一个键值对数组转为对象。
- symbol
值唯一,可以防止命名冲突;不能与其他数据一起运算;可以模拟私有属性,无法用for...in遍历到。
应用:可以作为对象的key, let s=Symbol('julian')
- 迭代器
array, arguments, set, map, string 等有iterator的数据结构,都可以用for...of进行遍历。
- set与WeakSet
Set类似于数组,但是成员的值都是唯一的,没有重复的值。size返回元素个数,add增加,delete删除,has,clear。
WeakSet 的成员只能是对象,而不能是其他类型的值。WeakSet 中的对象都是弱引用,即垃圾回收机制不考虑 WeakSet 对该对象的引用,也就是说,如果其他对象都不再引用该对象,那么垃圾回收机制会自动回收该对象所占用的内存,不考虑该对象还存在于 WeakSet 之中。
- class
constructor定义构造函数初始化,extends继承,super调用父级构造方法,static定义静态方法和属性。
- 模块化
- 数组方法
includes判断数组是否包含某个元素,from将类数组转为数组,of将一组值转为数组,find找出第一个符合条件的数组成员,findIndex返回第一个符合条件的数组成员的位置,fill可以填充数组,flat数组拍平。