ES6需要记忆理解的地方

let和const命令

1、let和const均无变量提升。
2、let变量指向的地址可变,const指向的地址不可变
3、let和const有块级作用域。也就是{}
4、暂时性锁区
5、不允许重复声明
6、从 ES6 开始,全局变量将逐步与顶层对象的属性脱钩。
7、globalThis对象

变量的解构赋值

本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。
如果解构不成功,变量的值就等于undefined
事实上,只要某种数据结构具有 Iterator 接口,都可以采用数组形式的解构赋值。
1、

let { foo: baz } = { foo: 'aaa', bar: 'bbb' };
baz // "aaa"

let { p, p: [x, { y }] } = obj;
x // "Hello"
y // "World"
p // ["Hello", {y: "World"}]
字符串

字符串有iterator接口。
ES6新增模板字符串
1、支持换行。
2、支持{表达式},内部是可以使用表达式的,也可以调用函数,如果函数的返回值不是字符串,则会默认调用toString函数。

ES6新增的字符串方法

includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。

这三个方法都支持第二个参数,表示开始搜索的位置。

let s = 'Hello world!';

s.startsWith('world', 6) // true
s.endsWith('Hello', 5) // true
s.includes('Hello', 6) // false

上面代码表示,使用第二个参数n时,endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。

repeat方法返回一个新字符串,表示将原字符串重复n次。

padStart()用于头部补全,padEnd()用于尾部补全。

'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'

'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba'

上面代码中,padStart()和padEnd()一共接受两个参数,第一个参数是字符串补全生效的最大长度,第二个参数是用来补全的字符串。

ES2019 对字符串实例新增了trimStart()trimEnd()这两个方法。它们的行为与trim()一致,trimStart()消除字符串头部的空格,trimEnd()消除尾部的空格。它们返回的都是新字符串,不会修改原始字符串。

matchAll() replaceAll() 新增了。

你可能感兴趣的:(ES6需要记忆理解的地方)