本文最后更新于 2024年6月17日 凌晨
1 | 解构赋值
对象的解构赋值变量名和属性名不一致的情况:
1 2 3 4 5 6 7
| let { foo: baz } = { foo: 'aaa', bar: 'bbb' }; baz
let obj = { first: 'hello', last: 'world' }; let { first: f, last: l } = obj; f l
|
解构的默认值:
1 2 3 4 5 6
| var {x, y = 5} = {x: 1}; x y
var {x: y = 3} = {x: 5}; y
|
2 | 字符串扩展
ES6新增了一些有用的字符串方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| let s = 'Hello world!'; s.startsWith('Hello') s.endsWith('!') s.includes('o') 'hello'.repeat(2) 'x'.padStart(5, 'ab') 'x'.padStart(4, 'ab')
'x'.padEnd(5, 'ab') 'x'.padEnd(4, 'ab')
const s = ' abc ';
s.trim() s.trimStart() s.trimEnd()
'aabbcc'.replace(/b/g, '_') 'aabbcc'.replaceAll('b', '_')
const str = 'hello'; str.at(1)
|
3 | 正则表达式
u修饰符
点(.
)字符在正则表达式中,含义是除了换行符以外的任意单个字符。对于码点大于0xFFFF
的 Unicode 字符,点字符不能识别,必须加上u
修饰符。
1 2 3 4
| var s = '𠮷';
/^.$/.test(s) /^.$/u.test(s)
|
上面代码表示,如果不添加u
修饰符,正则表达式就会认为字符串为两个字符,从而匹配失败。
y修饰符
表示"黏连", g
修饰符在多次匹配表示从子字符串任意位置都可以, 而y
表示必须从第一个
d修饰符
可以匹配每个组的开始和结束位置 (左闭右开)
1 2 3 4 5
| const text = 'zabbcdef'; const re = /ab+(cd)/d; const result = re.exec(text);
result.indices
|