1. 变量解构赋值
let obj = {
p: [
'Hello',
{ y: 'World' }
]
};
let { p: [x, { y }] } = obj;
x // "Hello"
y // "World"
p是模式,不是变量,因此不会被赋值。
let obj = {
p: [
'Hello',
{ y: 'World' }
]
};
let { p, p: [x, { y }] } = obj;
x // "Hello"
y // "World"
p // ["Hello", {y: "World"}]
2. 字符串扩展
includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
3. 正则表达式
组匹配和解构赋值
let {groups: {one, two}} = /^(?<one>.*):(?<two>.*)$/u.exec('foo:bar');
one // foo
two // bar
4. 箭头函数
箭头函数里面根本没有自己的this
,而是引用外层的this
。
5. Symbol
第七种数据类型,不能使用new,可用作私有变量。
Object.getOwnPropertySymbols(); 返回symbol的一个数组。
6. set 和 map
map 的遍历顺序就是插入顺序。
7. Proxy 和 Reflect
Proxy 和 Reflect 方法一一对应,
第一个参数为对象,否则报错。
8. Decorator
修饰器只用于类和类的方法,不用于函数,函数存在提升。
9. Promise
Promise.resolve 将现有对象转换为Promise对象。
Promise.resolve 方法允许调用时不带参数,直接返回一个resolved
状态的 Promise 对象。