Como sabemos, JavaScript es un lenguaje de tipado dinámico, lo que a veces puede confundirnos cuando tratamos con valores vacíos o inexistentes. En esta publicación de blog, exploraremos las diferencias entre cadenas nulas, indefinidas, vacías y matrices vacías en JavaScript, con ejemplos de código para ilustrar cada concepto.
null es un valor sin valor deliberado. Representa una variable que se ha definido explícitamente como sin valor.
let myVariable = null; console.log(myVariable); // Output: null console.log(typeof myVariable); // Output: "object"
Nota: el tipo de nulo devuelve un objeto, que es una peculiaridad conocida en JavaScript debido a razones heredadas.
undefinido representa una variable que ha sido declarada pero aún no se le ha asignado un valor.
let myUndefinedVariable; console.log(myUndefinedVariable); // Output: undefined console.log(typeof myUndefinedVariable); // Output: "undefined" function myFunction(param) { console.log(param); } myFunction(); // Output: undefined
Una cadena vacía es una cadena válida con una longitud de cero.
let emptyString = ''; console.log(emptyString); // Output: "" console.log(typeof emptyString); // Output: "string" console.log(emptyString.length); // Output: 0
Una matriz vacía es una lista sin elementos.
let emptyArray = []; console.log(emptyArray); // Output: [] console.log(typeof emptyArray); // Output: "object" console.log(Array.isArray(emptyArray)); // Output: true console.log(emptyArray.length); // Output: 0
Comparemos estos diferentes tipos:
console.log(null == undefined); // Output: true console.log(null === undefined); // Output: false console.log('' == null); // Output: false console.log('' == undefined); // Output: false console.log([] == null); // Output: false console.log([] == undefined); // Output: false console.log(Boolean(null)); // Output: false console.log(Boolean(undefined)); // Output: false console.log(Boolean('')); // Output: false console.log(Boolean([])); // Output: true
function isNullOrUndefined(value) { return value == null; } console.log(isNullOrUndefined(null)); // Output: true console.log(isNullOrUndefined(undefined)); // Output: true console.log(isNullOrUndefined('')); // Output: false console.log(isNullOrUndefined([])); // Output: false
function isEmpty(value) { if (typeof value === 'string') { return value.length === 0; } if (Array.isArray(value)) { return value.length === 0; } return false; } console.log(isEmpty('')); // Output: true console.log(isEmpty([])); // Output: true console.log(isEmpty('hello')); // Output: false console.log(isEmpty([1, 2, 3])); // Output: false
Comprender las diferencias entre cadenas nulas, indefinidas, vacías y matrices vacías es crucial para escribir código JavaScript limpio y sin errores. Cada uno tiene sus casos de uso y se comporta de manera diferente en comparaciones y comprobaciones de tipos. Al utilizar estos valores correctamente y conocer sus matices, podrá escribir aplicaciones JavaScript más sólidas y fáciles de mantener.
Recuerde considerar siempre el contexto de su aplicación al decidir cuál de estas usar y sea coherente en su enfoque en todo su código base.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3