Asignación lógica nula ??= en JavaScript

Este es un nuevo operador introducido por javascript. Este operador está representado por x ??= y y se llama operador lógico de asignación nula. Solo si el valor de x es nulo , el valor de y se asignará a x , lo que significa que si el valor de x es nulo o indefinido , el valor de y se asignará a x.

Sintaxis:

x ??= y

Means : x ?? (x = y)

Ejemplo 1 :

Javascript

let x = 12;
let y = null;
  
let z = 13;
  
// The value of x will become 
// unchanged because x is not nullish.
x ??= z;
  
// The value of y will be 
// changed because y is nullish.
y ??= z;
  
  
console.log(x)    // 12
console.log(y)      // 13

Producción :

12
13

Ejemplo 2:

Javascript

let x = {
  name : "Ram"
}
  
// The value of name will remain
// unchanged because x.name is not nullish
x.name ??= "Shyam";
  
// There is no any property named age in object x .
// So the value of x.age will be 
// undefined and undefined means nullish.
// that's why the value of age will be assigned.
x.age ??= 18;
  
console.log(x.name)  // Ram
console.log(x.age)     // 18

Producción :

"Ram"
18

Ejemplo 3:

HTML

<!DOCTYPE html>
<html>
<head>
  <title>JS Bin</title>
</head>
<body>
  <h1>Hello Geeksforgeeks</h1>
  <p id="print_arr"></p>
  
  <script>
      
      let arr = [1, 2, "apple", null, undefined, []]
        
      // Replace each nullish values with "gfg"
      arr.forEach((item, index)=>{
        arr[index] ??= "gfg"
    })
  
    document.getElementById("print_arr")
      .innerText = arr.toString();
    //console.log(arr)
  </script>
    
</body>
</html>

Producción :

Cómo funciona la asignación lógica nula

Analicemos cómo funciona este operador lógico de asignación nula. En primer lugar, todos sabemos que la asignación lógica nula se representa como x ?? = y , esto se deriva de dos operadores , el operador de fusión nulo y el operador de asignación, también podemos escribirlo como x ?? (x = y) . Ahora, javascript verifica primero x , si es nulo , el valor de y se asignará a x .

Navegadores compatibles

  • cromo 85
  • Borde 85
  • firefox 79
  • Safari 14

Publicación traducida automáticamente

Artículo escrito por _saurabh_jaiswal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *