JavaScript/jQuery 中等效的 Oracle NVL 函数

问题描述 投票:0回答:5

JavaScript/jQuery 中是否有等效的 Oracle NVL 函数。我有兴趣查看其工作原理的示例。

javascript jquery
5个回答
13
投票

在 Javascript 中,这实际上可以由

||
运算符处理,它返回第一个“有效”值。

var a = null;
var b = "valid value";
var c = a || b; // c == "valid value"

请记住,“falsy”值不仅是

null
,而且还可以是例如空字符串
''
、数字
0
和布尔值
false
。因此,您需要确保要么考虑与
null
具有相同含义的变量,要么您的变量不能采用这些值,因为在这些情况下,您还将获得选择的第二个值:

var a = "";
var b = "valid value";
var c = a || b; // c == "valid value"

12
投票

三元运算符通常用在这里。

例如,如果您要在 Apex 中创建动态操作,您可以执行以下操作:

( $v("P1_VAL1") ? $v("P1_VAL1") : $v("P1_VAL2") )

如果不为空,则返回

P1_VAL1
的值,否则返回
P1_VAL2
的值。


6
投票

空合并运算符 (??)

空合并运算符 (??) 是一个逻辑运算符,当其左侧操作数为 null 或未定义时,它返回其右侧操作数,否则返回其左侧操作数。

var foo = null ?? 'default string';
console.log(foo);
// expected output: "default string"

var baz = 0 ?? 42;
console.log(baz);
// expected output: 0

3
投票
function nvl(value1,value2){
   if (value1 == null)
      return value2;
   
   return value1;
}

0
投票

在 jq 中是

//
操作。当返回 null 而不是列表时非常有用:

.foo // [] | map(...)
© www.soinside.com 2019 - 2024. All rights reserved.