文章目录
ES6中的对象
set:删除指定对象元素;set与weakset的区别(成员、遍历、垃圾回收)
map:一次性传入多个键值对new map([key1,value1],[key2,value2]…);map与weakmap的区别(成员、方法(weakmap中clear不可用)、遍历、垃圾回收)
String:模板字符串以及带标签的模板字符串Tag Literals;ES8扩展方法:padStart/padEnd;ES9扩展方法:移除了对 ECMAScript带标签的模板字符串 中转义序列的语法限制;ES10扩展方法:trimStart/trimEnd;ES11扩展方法:matchAll
RegExp:ES6为正则表达式添加了y修饰符(“粘连”(sticky)修饰符)和u修饰符(“Unicode模式”);
y修饰符与g修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。不同之处在于,g修饰符只要剩余位置中存在匹配就可,而y修饰符确保匹配必须从剩余的第一个位置开始;
u修饰符用来正确处理大于 \uFFFF 的Unicode字符。也就是说,会正确处理四个字节的UTF-16编码;ES9扩展方法:s修饰符、具名组匹配、(?<…)是后行断言的符号,(?..)是先行断言的符号,然后结合 =(等于)、!(不等)、\1(捕获匹配)。
Number:数值类型,包括整形和浮点型;ES11扩展BigInt:一个任意精度的整数,可以表示超长数据,可以超出2的53次方。
Proxy:在 ES6 标准中新增的一个非常强大的功能是 Proxy,它可以自定义一些常用行为如查找、赋值、枚举、函数调用等。通过 Proxy 这个名称也可以看出来它包含了“代理”的含义,只要有“代理”的诉求都可以考虑使用 Proxy 来实现。
Reflect:Reflect对象与Proxy一样,也是 ES6 为了操作对象而提供的新 API。
一、属性
1.1 属性简洁表示法
在 ES6 之前 Object 的属性必须是 key-value 形式,如下:
let name = 'xiecheng'
let age = 34
let obj = {
name: name,
age: age,
study: function() {
console.log(this.name + '正在学习')
}
}
在 ES6 之后是可以用简写的形式来表达:
let name = 'xiecheng'
let age = 34
let obj = {
name,
age,
study() {
console.log(this.name + '正在学习')
}
}
1.2 属性名表达式
在 ES6 可以直接用变量或者表达式来定义Object的 key。
let s = 'school'
let obj = {