🥳 欢送有趣味的小伙伴,一起做点有意义的事!
我发动了一个 周刊翻译打算,仓库地址,拜访地址
当初还很缺气味相投的小伙伴,纯属个人兴趣,当然对于晋升英语和前端技能也会有帮忙,要求:英语不要差的离谱、github 纯熟应用、有恒心、虚心、对本人做的事负责。
想参加的小伙伴,能够 wx 私信,也能够给仓库发 issue 留言,我博客也有具体的集体联系方式:daodaolee.cn
逻辑赋值操作符(&&= ||= ??=)
逻辑赋值操作符📖.
// 或 或等
x ||= y;
x || (x = y);
// 与 与等
x &&= y;
x && (x = y);
// 零合并
x ??= y;
x ?? (x = y);
const updateID = user => {
// 能够这样写
if (!user.id) user.id = 1
// 或者这样
user.id = user.id || 1
// 或者用逻辑赋值运算符
user.id ||= 1
}
function setOpts(opts) {
opts.cat ??= 'meow'
opts.dog ??= 'bow';
}
setOpts({cat: 'meow'})
数字分隔符
数字组合之间的分隔📖.
1_000_000_000 // 啊,十亿
101_475_938.38 // 这是好多亿
let fee = 123_00; // 123 美元
let fee = 12_300; // 12,300 美元
let amount = 12345_00; // 12,345
let amount = 123_4500; // 123.45
let amount = 1_234_500; // 1,234,500
0.000_001 // 百万分之 1
1e10_000 // 10^10000
0xA0_B0_C0;
Promise.any 和谬误合集
Promise.any + 谬误合集📖.
Promise.any([fetch('https://v8.dev/').then(() => 'home'),
fetch('https://v8.dev/blog').then(() => 'blog'),
fetch('https://v8.dev/docs').then(() => 'docs')
]).then((first) => {
// 任意一个 promise 状态为 fulfilled
console.log(first);
// → 'home'
}).catch((error) => {
// 所有 promise 状态都为 rejected
console.log(error);
});
String.prototype.replaceAll
替换所有📖.
// String.prototype.replaceAll(searchValue, replaceValue)
'x'.replace('','_');
// → '_x'
'xxx'.replace(/(?:)/g, '_');
// → '_x_x_x_'
'xxx'.replaceAll('','_');
// → '_x_x_x_'
WeakRefs 和 FinalizationRegistry 对象
WeakRefs 和 FinalizationRegistry 📖
let target = {};
let wr = new WeakRef(target);
//wr 和 target 不是同一个,wr 是弱援用
// 创立一个新的注册者
const registry = new FinalizationRegistry(heldValue => {// ....});
registry.register(myObject, "some value", myObject);
// 执行一些逻辑解决之后,如果你不再应用 `myObject`,能够解绑
registry.unregister(myObject);
相干链接
原文链接
翻译打算原文