JavaScript/jQuery 中是否有等效的 Oracle NVL 函数。我有兴趣查看其工作原理的示例。
在 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"
三元运算符通常用在这里。
例如,如果您要在 Apex 中创建动态操作,您可以执行以下操作:
( $v("P1_VAL1") ? $v("P1_VAL1") : $v("P1_VAL2") )
如果不为空,则返回
P1_VAL1
的值,否则返回P1_VAL2
的值。
空合并运算符 (??) 是一个逻辑运算符,当其左侧操作数为 null 或未定义时,它返回其右侧操作数,否则返回其左侧操作数。
var foo = null ?? 'default string';
console.log(foo);
// expected output: "default string"
var baz = 0 ?? 42;
console.log(baz);
// expected output: 0
function nvl(value1,value2){
if (value1 == null)
return value2;
return value1;
}
在 jq 中是
//
操作。当返回 null 而不是列表时非常有用:
.foo // [] | map(...)