javascript - 基于 OR 表达式的变量赋值简写

标签 javascript angular logical-operators

是否有将变量分配给 OR 表达式的简写形式?例如,我的 UI 上有一个按钮根据某些变量的状态被禁用。

this.disableButton = data && data.items.length < 2 && pending;

我还有一个复选框,用于确定是否禁用或启用所述按钮。

因此,按钮最终根据如下所示的表达式被禁用/启用:

this.disableButton = this.disableButton || !checked

在我的模板上,我有类似的东西:

<component [class.disabled]="disableButton"></component>

我很好奇是否有一种方法可以缩短上述表达式的语法。像这样的东西:

this.disableButton ||= !checked

谢谢

最佳答案

一次性分配给 disableButton 比先为结果分配一个中间值然后再重新分配更直接 - 这会造成混淆。因为单凭checked就可以判断结果,先检查一下最清楚:

this.disableButton = !checked || (data && data.items.length < 2 && pending);

关于javascript - 基于 OR 表达式的变量赋值简写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50053974/

相关文章:

JavaScript 输入类型

javascript - 选中至少一个复选框时显示一个 div,但取消选中最后一个复选框后隐藏

angular - 如何等待TestCafe中的 Angular 执行?

unit-testing - 如何在 Visual Studio Code 中使用 Typescript 进行 TDD?

python - 'and' 和 'or' 的操作顺序是什么?

javascript - 提交带有一些附加参数的表单(post,NOT ajax)

javascript - JS 按类型和名称选择输入

angular - Typescript 组件选择器应命名为 undefined

C 中的复合关系运算符

c# - 运算符 '||' 不能应用于类型 'bool?' 和 'bool?' 的操作数