如何在javascript中为变量设置一行setter

How to have a one line setter for the variable in javascript?

本文关键字:setter 一行 设置 变量 javascript      更新时间:2023-09-26

我希望能够做到以下几点:

假设我有3个变量:

  • var a1;
  • var a2;
  • var x;

我希望能够设置"x":

  • 如果不是null,则等于a1
  • 如果a1不是null,则等于a2
  • 如果定义了a2 a1和a2,则等于a1
  • 如果a1a2都是null,则等于null

有没有一行javascript可以让我做到这一点?

目前我做:

var x;
if (a2) {
 x = a2;
}
if (a1) {
 x = a1;
}

假设您只关心值是否为false而不是与null相同,则使用||:

var x = a1 || a2 || null;

在任何受C影响的语言中,"and"answers"or"运算符都会短路。结合Javascript的真实性概念,这是一个强大的功能。使用它。

您可以使用三元表达式。这将允许您传递一个条件,而不是默认为undefined/null检查。这是一种短路情况。

就像C#和Java一样,表达式只会被求值如果,并且只有当,该表达式才是给定条件的匹配表达式;则不会对另一个表达式进行求值[2]

var x = a1 != null ? a1 : a2 != null ? a2 : null;

尽管?:的用法看起来像Elvis运算符(?:),但在JavaScript中,您可以使用||(OR逻辑运算符)为默认值执行null合并。

var x = a1 || a2 || null;

使用?运算符

var x; x = a1 ? a1 : (a2 ? a2: null)