Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中为变量设置单行设置器?_Javascript - Fatal编程技术网

如何在javascript中为变量设置单行设置器?

如何在javascript中为变量设置单行设置器?,javascript,Javascript,我希望能够做到以下几点: 假设我有3个变量: var a1 vara2 varx 我希望能够设置“x”: 等于a1,如果它不是null 如果a1不是null 如果定义了a1和a2,则等于a1 如果a1和a2都是null 有没有一行javascript我可以使用 目前我有: var x; if (a2) { x = a2; } if (a1) { x = a1; } 假设您只关心值是否为falsy而不是与null相同,请使用|: var x = a1 || a2 || null;

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

假设我有3个变量:

  • var a1
  • vara2
  • varx
我希望能够设置“x”:

  • 等于
    a1
    ,如果它不是
    null
  • 如果
    a1
    不是
    null
  • 如果定义了a1和a2,则等于
    a1
  • 如果
    a1
    a2
    都是
    null
有没有一行javascript我可以使用

目前我有:

var x;

if (a2) {
 x = a2;
}

if (a1) {
 x = a1;
}

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

var x = a1 || a2 || null;

“and”和“or”运算符在任何受C语言影响的语言中短路。结合Javascript的真实性概念,这是一个强大的特性。使用它。

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

var x = a1 || a2 || null;

“and”和“or”运算符在任何受C语言影响的语言中短路。结合Javascript的真实性概念,这是一个强大的特性。使用它。

使用
运算符

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

使用
运算符

var x; x = a1 ? a1 : (a2 ? a2: null) 
你可以用一个。这将允许您传递条件,而不是默认为
undefined
/
null
检查。这是一种短路情况

与C#和Java一样,只有当表达式是给定条件下的匹配表达式时,才会对该表达式进行计算;将不计算另一个表达式

虽然的用法看起来像Elvis操作符(
?:
),但在JavaScript中,您可以使用它来执行默认值

var x = a1 || a2 || null;
你可以用一个。这将允许您传递条件,而不是默认为
undefined
/
null
检查。这是一种短路情况

与C#和Java一样,只有当表达式是给定条件下的匹配表达式时,才会对该表达式进行计算;将不计算另一个表达式

虽然的用法看起来像Elvis操作符(
?:
),但在JavaScript中,您可以使用它来执行默认值

var x = a1 || a2 || null;

varx;x=a1?a1:(a2?a2:null)
当然,可以在一行中完成,但为什么是一行?编写它以使其易于阅读,然后使用缩微器。
var x;x=a1?a1:(a2?a2:null)
当然,可以在一行中完成,但为什么是一行?写它,以便它易于阅读,然后使用一个小型化。这可能适用于大多数情况下,但将不工作,如果<代码> A1 < /代码>或<代码> A2 < /代码>是伪造的(例如,代码>错误< /代码>或<代码>”/代码>。A1或A2是NULL或对象,所以不需要考虑假或“@”BhojendraNepal如何?我不知道如何在这个表达式中随机插入一个
&&
,并获得有意义的内容。@BhojendraNepal如果没有,请尝试运行它。@BhojendraNepal如果a1和a2是真的,则返回
null
。事实上,它总是返回一些虚假的东西。这可能适用于大多数情况,但是如果<代码> A1 < /C>或<代码> A2< /Cal>是伪造的(例如:代码>错误< /代码>或<代码>”/“代码>”,A1或A2不是NULL或Objor,所以不需要考虑假或“@”BhojendraNepal怎么办?我不知道如何在这个表达式中随机插入一个
&&
,并获得有意义的内容。@BhojendraNepal如果没有,请尝试运行它。@BhojendraNepal如果a1和a2是真的,则返回
null
。事实上,它总是返回一些虚假的东西。