P. ¿Cuál es más LEGIBLE?
const emptyValue = ""; Boolean(emptyValue); // falsecontra
const emptyValue = ""; emptyValue ? true : false; // falseEste es un caso muy común en el que desea que el flujo cambie según un valor específico de una variable. Sé que esto casi no tiene diferencia en cuestión de rendimiento, pero tengo mucha curiosidad sobre la opción de la comunidad en cuestión de LEGIBLE.
En mi opinión es más legible la segunda, a saber:
const emptyValue = ""; emptyValue ? true : false;pero la forma de JavaScript para convertir en un tipo booleano es:
const emptyValue = ""; !!emptyValue; ! llama a Boolean() detrás del capó, por lo que se llama dos veces y es menos eficiente que la única solución Boolean(), pero repito que es la forma de JavaScript.
Prefiero solo probar el nombre de la variable.
Funciona para TODOS excepto 0 si necesita probar un número, ¡para eso puede usar ! Doble no
Es posible usar un par de operadores NOT en serie para forzar explícitamente la conversión de cualquier valor a la primitiva booleana correspondiente. La conversión se basa en la "veracidad" o "falsedad" del valor
const emptyValue = ""; let undefinedValue; const zero = 0; const nullValue = null const definedVariable = "Hello" console.log(definedVariable,emptyValue,undefinedValue,zero,nullValue) console.log(Boolean(definedVariable), Boolean(emptyValue),Boolean(undefinedValue),Boolean(zero),Boolean(nullValue)) console.log(!!definedVariable ,!!emptyValue,!!undefinedValue,!!zero,!!nullValue) if (definedVariable) console.log("definedVariable is truthy"); if (!emptyValue) console.log("emptyValue is falsy"); if (!undefinedValue) console.log("undefinedValue is falsy"); if (!zero) console.log("zero is falsy"); if (!!zero) console.log("zero is not falsy with !!"); if (!nullValue) console.log("nullValue is falsy");