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