Cómo evitar valores nulos en JavaScript

 Sé que el título de este post puede ser un poco engañoso, pero quiero hoy escribir acerca de tres opciones que nos ayudan a asignar un valor a una variable dependiendo de si tenemos o no un null.

La manera fácil

La forma más sencilla y directa es simplemente hacer un bloque condicional en el que evaluamos si la variable de control es nula o no:

if(foo === null) {

    res = "valor";

}

Operador OR (||)

Otra manera de asignar un valor si nuestra variable de control es nula es usando el operador OR (||):

res = foo || "valor";

Esta es una manera rápida y fácil de entender, en la que le decimos a la máquina que le asigne un valor (string "valor" en el ejemplo) a res si foo es una variable nula. Sin embargo esta manera de hacerlo puede tener algunos resultados inesperados. Al ser || un operador booleano la expresión del lado izquierdo se evalúa como tal, considerando valores como 0, "", NaN, y false como ciertos (como nulos) siendo que no siempre se consideran así. Pongo los siguientes ejemplos para que se entienda mejor:

const count = 0;

const text = "";


const qty = count || 42;

const message = text || "valor";


console.log(qty); // 42, no 0

console.log(message); // "valor", no ""

Nullish Coalescing Operator (??)

Si queremos evitar que valores definidos (no null y no undefined) se consideren como nulos, entonces debemos utilizar el Nullish coalescing operator (??). Dicho operador se utiliza de la misma manera que el operador OR (||) con a diferencia de que simplemente evalua la variable de control en contra de valores no definidos. Usando los mismos ejemplos que antes, los resultados ahora serían los siguientes:

const count = 0;

const text = "";


const qty = count ?? 42;

const message = text ?? "valor";


console.log(qty); // 0

console.log(message); // ""

Esas son las maneras que puedo compartir sobre cómo asignar un valor cuando nuestra variable de control es indefinida/nula. Dependiendo de nuestro caso de uso, podemos optar por una o la otra, pero siempre es bueno conocer las opciones que tenemos para poder tomar la mejor decisión.

Comentarios

Mi foto
JuanoBananoX
Desarrollador de Software, aficionado de los videojuegos y la cultura geek, escritor amateur y entusiasta de la tecnología. Con experiencia de 10+ años trabajando con PHP, WordPress, JavaScript, React, CSS, Java y distintas Bases de Datos.

Entradas más populares de este blog

Cómo agregar bloques de código en Blogger

Metal Gear Solid

Los Siete Maridos de Evelyn Hugo

Starter Villain