如何在javascript中为变量设置一行setter
How to have a one line setter for the variable in javascript?
我希望能够做到以下几点:
假设我有3个变量:
var a1;
var a2;
var x;
我希望能够设置"x":
- 如果不是
null
,则等于a1
- 如果
a1
不是null
,则等于a2
- 如果定义了
a2
a1和a2,则等于a1
- 如果
a1
和a2
都是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)
相关文章:
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 动态插入的表:JQuery未检测到最后一行
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- "实例范围”;TypeScript类的getter/setter
- 如何在Angular UI网格中选择下一行
- 通过单击动态加载的表中同一行的另一个字段来更新一行的字段
- Jquery幻灯片以一行左侧的图像开始,但我希望它从右端开始
- 从重复的javascript数组结果集中只获取一行
- 在GridView中,当单击复选框时,在网格的同一行中使用JavaScript将标签中的值添加到TextBox
- html5画布在同一行中写入多个字体
- Angular JS在一行中查找最小值
- 是否排除节点中错误堆栈的第一行?/节点中的自定义错误类型
- 谷歌地图-数据库中的标记只显示最后一行的信息
- 如何确保JQuery的一行在另一行之前运行
- PHP&CSS:如何获得表中每一行的悬停效果
- 文本区域-获取每一行,找到换行符
- 允许为显示的每个数据表选择一行
- Javascript:将多个表打印成一行,然后再打印
- 隐藏的锚链接下降在下一行一旦显示
- 如何在javascript中为变量设置一行setter