gpt4 book ai didi

javascript - &&=、||= 和 ??= 的作用是什么?

转载 作者:行者123 更新时间:2023-12-03 07:04:50 25 4
gpt4 key购买 nike

我在 中看到过这种语法。 v15.0.1:&&= , ||=??= .
但我不知道它有什么作用。有人知道吗?

最佳答案

这些是新的logical assignment operators .它们类似于更熟悉的运算符,如 *= , += , ETC。someVar &&= someExpression大致相当于someVar = someVar && someExpression .someVar ||= someExpression大致相当于someVar = someVar || someExpression .someVar ??= someExpression大致相当于someVar = someVar ?? someExpression .
我说“大致”是因为有一个区别 - 如果不使用右侧的表达式,则不会调用可能的 setter 。所以它更接近于:someVar &&= someExpression就好像

if (!someVar) {
someVar = someExpression;
}
等等。 (不调用 setter 的事实是 unlikely 会对脚本产生影响,但这并非不可能。)这与其他传统的速记赋值运算符不同,后者无条件地分配给变量或属性(并因此调用二传手)。这是一个片段来演示:

const obj = {
_prop: 1,
set prop(newVal) {
this._prop = newVal;
},
get prop() {
return this._prop;
}
};

// Setter does not get invoked:
obj.prop ||= 5;
?? ,如果您不熟悉它,它是无效的合并运算符。如果左侧是 null,它将评估到右侧。或 undefined .

关于javascript - &&=、||= 和 ??= 的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64617548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com