什么是JavaScript中的 “空凝聚 “运算符

什么是JavaScript中的 “空凝聚 “运算符

空值凝聚_运算符(??)是JavaScript中引入的一个二进制运算符,如果第一个操作数存在并且不是空值或未定义,则用于返回该操作数;否则返回第二个操作数。

下面是一个如何使用空凝聚运算符的例子–

const x = null;
const y = 'Hello';
const result = x ?? y; // 'Hello'

在这个例子中,x的值是空的,所以y被返回。如果x是任何其他非空或未定义的值,该值将被返回。

你也可以通过链式空值凝聚运算符来提供多个回落值—-。

const a = null;
const b = undefined;
const c = 'Hello';
const result = a ?? b ?? c; // 'Hello'

在这个例子中,如果a为空或未定义,运算符将转到下一个操作数(b)。如果b为空或未定义,运算符将返回最后的操作数(c)。

空值凝聚运算符是一个有用的工具,可以在你的代码中提供默认值和处理空值或未定义值。

语法

以下是JavaScript中空值凝聚运算符(??)的语法-

operand1 ?? operand2

这里,operand1operand2是两个操作数。如果操作数(??)存在并且不是空或未定义,则返回operand1。否则,它将返回operand2

示例

让我们看一个例子,我们创建一个常量并将其分配给字符串 “Hello “用null凝聚运算符将其分开,然后提供一个字符串 “Hello World”。左边的值不是空的,所以它将被分配给常量。

创建另一个常数value2,并将其赋值为null,然后用null凝聚运算符将其分开,然后提供一个字符串 “Hello World”,因为左手边的值是null,右手边的值被赋值为常数,然后记录两个值。

<html>
<body>
   <h2>Understanding "null coalescing" operator in  JavaScript</h2>
   <script>

      // Using null coalescing operator to initialize variables.
      const value1 = "Hello" ?? "Hello World";
      const value2 = null ?? "Hello World";

      // Printing the values.
      document.write(value1 + "<br>");
      document.write(value2 + "<br>");
   </script>
</body>

空凝聚算子与传统算子的区别

在过去,JavaScript中的null凝聚操作符并不存在,所以建议使用or操作符,其工作原理类似,但它们之间的区别在于,如果值是false、null或undefined,or操作符不会执行左侧的语句。但是null凝聚运算符会执行左侧的语句来确定值是否为false。

示例

让我们创建两个常数:第一个是num1,并将其设置为数字0,第二个是num2,并将其设置为数字1。然后创建两个表达式,一个使用空凝聚运算符,另一个使用或运算符,num1在左边,num2在右边,并记录两个表达式的值。

<html>
<body>
   <h3>Understanding "null coalescing" operator in JavaScript</h3>
   <div id= "result"></div>
   <script>
      // Creating variables normally
      const num1 = 0;
      const num2 = 1;

      // Initializing variables using null coalescing operator
      const value1 = num1 || num2;
      const value2 = num1 ?? num2;
      document.write("0 || 1 = " + value1 + "<br>");
      document.write("0 ?? 1 = " + value2 + "<br>");
   </script>
</body>
</html>

null凝聚运算符是or运算符的一个特例,它执行第一个语句,无论它是真还是假。第一条语句不应该是空或未定义的。它只在左手边的值为空或未定义时执行右手边的语句。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

JavaScript 教程