JavaScript/jQuery中的Oracle NVL函数等效方法

11

在 JavaScript/jQuery中,是否有类似于 Oracle NVL 函数的功能?我希望看到一个它是如何工作的示例。

4个回答

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"

1
我点赞了这个评论,因为它不需要重复目标表达式,这是 NVL 的真正等价物。如果目标表达式很长或难以处理,或者在运行时执行其他计算或转换,我不想重复它。 - John Chase

12

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

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

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

如果 P1_VAL1 不为空,则返回其值,否则返回 P1_VAL2 的值。


6

Nullish合并运算符 (??)

Nullish合并运算符(??)是一种逻辑运算符,当左侧操作数为null或undefined时,返回其右侧操作数,否则返回左侧操作数。

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

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

但要注意浏览器兼容性...我会选择传统的条件(三元)运算符(?:)。https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator - hello_earth

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接