es6 中字符串、函数、对象、数组分别新增了哪些扩展
es6 中字符串的扩展
- includes
- startsWith
- endsWith
- padStart
- padEnd
- 模版字符串
es6 中函数的扩展
- 箭头函数
- this 对象指向定义时所在的对象
- 不可以当作构造函数,不可以使用 new 命令
- 不可以使用 arguments 对象,可以使用 rest 参数
- 不可以适用 yield 命令,因此箭头函数不能用作 generator 函数
- 默认参数:允许在函数参数中指定默认值
- length 属性:返回没有指定默认值的参数个事,rest 参数不会计入 length,如果设置了默认值的参数不是尾参数,那么 length 属性也不再计入后面的参数了
- 剩余参数:使用 ...rest 可以将多余的参数收集到一个数组中,方便处理不定量参数
- 展开运算符:使用展开运算符 ... 可以将数组或类数组对象展开成逗号分隔的参数序列
- 函数名称属性:每个函数具有一个 name 属性,表示函数的名称
- 是要函数参数使用了默认值,解构赋值,扩展运算符,那么函数内部就不能显式设定为严格模式,否则会报错
es6 中对象的扩展
- 对象字面量的简写语法:允许在对象字面量中省略键和值的重复部分,简写的对象不能用作构造函数
- 计算属性名/属性名表达式:允许在对象字面量中使用计算属性名,即在方括号内使用表达式作为属性名,属性名如果是一个对象,默认情况下会自动将对象转为字符串 [object Object]
- 对象方法的简写语法:在对象字面量中定义方法时,可以省略 function 关键字
- Object.assign 可以将所有可枚举属性的值从一个活多个源对象复制到目标对象,并返回目标对象,【会改变目标对象,所以一般我们用的时候目标对象设置成 {} 】
- 对象属性的解构赋值:允许在对象解构赋值中从对象中提取并赋值给变量
- super 关键字指向当前对象的原型对象
- 扩展运算符的应用:在结构赋值中,未读区的可遍历属性,分配到指定的对象上面
- 对象的遍历
- for in
- Object.keys
- Reflect.ownKeys(obj)
- 新增的方法
- Object.is
- Object.assign
- Object.getOwnPropertyDescriptors
- Object.keys(),Object.values(),Object.entries(),返回数组
- Object.setPrototypeOf(),Object.getPrototypeOf()
es6 中数组的扩展
- 扩展运算符
- Array.of ,参数展开传递
- Array.from 参数是一个类数组
- find
- findIndex
- includes
- fill
- flat
- flatMap
- map \ filter \ reduce \ forEach
- entries \ keys \ values
- 数组解构赋值
- 使用 const [a, b] = [1, 2];
- 注意数组的解构赋值使用方括号
- 对象的解构赋值使用花括号
- 数组的扩展属性
- Array.prototype.length 可以被修改
- Array.prototype[@@toStringTag] 返回 Array