??=JavaScript 的作用是什么?
keys.reduce((o, k) => o[k] ??= {}, obj)[last] = value
Run Code Online (Sandbox Code Playgroud)
Bho*_*yar 28
??=与Nullish Coalescing Operator类似,作为逻辑空值赋值而引入,与其他语言一样实现:php example。ES12 (ECMAScript 2022) 中引入了逻辑空赋值。
逻辑空赋值 (x ??= y) 运算符仅在 x 为空(空或未定义)时进行赋值。
例子:
let foo = null;
let bar = "Give me a beer!";
foo ??= bar;
Run Code Online (Sandbox Code Playgroud)
foo ?? (foo = bar)与上面的表达式等价。仅当is或 时,该变量foo才会被分配该变量。在此示例中,foo 变为“给我一杯啤酒!”。如果我们替换为 `let foo = "I don't need a beer!",则分配不会发生。变量 foo 保持“我不需要啤酒!”。barfoonullundefinedlet foo = null
与 an 等效的代码if statement如下:
let foo = null;
let bar = "Give me a beer!";
if (foo == null || foo == undefined) {
foo = bar;
}
Run Code Online (Sandbox Code Playgroud)
它不检查其他虚假值。它只检查null和undefined。
因此,在您的代码示例中,当value 结果或时o[k]分配一个空对象。{}o[k]nullundefined
| 归档时间: |
|
| 查看次数: |
10898 次 |
| 最近记录: |