1、Object.fromEntities() 将键值对列表转成对象
const map = new Map([ ['foo', 'bar'], ['baz', 42] ]); const obj = Object.fromEntries(map); console.log(obj); // {foo: 'bar', baz: 42}
2、Object.entries() 返回给定对象自身可枚举属性的键值对数组
const obj = { a: 'somestring', b: 2 }; for (const [key, value] of Object.entries(obj)) { console.log(`${key}: ${value}`); } // a: somestring // b: 2
3、for await of 异步遍历器
function Gen (time) { return new Promise(function (resolve, reject) { setTimeout(function () { resolve(time) }, time) }) } async function test () { let arr = [Gen(2000), Gen(100), Gen(3000)] for await (let item of arr) { console.log(Date.now(), item) } } test()
4、Promise.prototype.finally() promise 执行结束时,无论是 fulfilled 还是 rejected,在执行 then() 或者 catch 之后,都会执行 finally 的回调函数。
5、正则表达式
- s (dotAll) flag
正则表达式中,点(.)是一个特殊字符,代表任意的单个字符,但是有两个例外,一个是四个字节的 UTF-16 字符,这个可以用u修饰符解决;另一个是行终止符(U+000A 换行符(\n)、U+000D 回车符(\r)、U+2028 行分隔符、U+2029 段分隔符)
console.log(/foo.bar/.test('foo\nbar')) // false console.log(/foo.bar/s.test('foo\nbar')) // true
判断是否使用了 dotAll 模式
const reg = /foo.bar/s // new RegExp('foo.bar', 's') console.log(reg.test('foo\nbar')) // true console.log(reg.dotAll) // true console.log(reg.flags) // 's'
- named capture groups
在写正则表达式的时候,可以把一部分用()包裹起来,被包裹起来的这部分称作“分组捕获”。
let time = '2021-09-22'.match(/(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/); console.log(time) // ['2021-09-22', '2021', '09', '22', index: 0, input: '2021-09-22', groups: {…}] // groups: {year: '2021', month: '09', day: '22'} console.log(time.groups.year) // '2021' console.log(time.groups.month) // '09' console.log(time.groups.day) // '22'
6、删除空格
- trim()
- trimLeft()
- trimRight()
- trimStart()
- trimEnd()
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
字体处理常用属性