Publicado el 3 de junio de 2024
Al evaluar la expresión +!![] se obtiene 1
¿Por qué ocurre esto? Vamos a desglosar la expresión paso a paso para entender el proceso.
console.log(+!![]); // 1
Veamos el proceso paso a paso:
Paso 1
Empezamos con un array vacío [].
En JavaScript, un array vacío es un objeto que es considerado “truthy” en contextos booleanos.
Paso 2
Luego el operador de negación lógica ! se aplica al array vacío [].
En JavaScript, el operador de negación lógica ! convierte un valor “truthy” en false.
Entonces ![] resulta en false.
Paso 3
Aplicar el operador de negación lógica dos veces !![] convierte el valor de nuevo a “truthy”.
Primero ![] da false, y luego !![] da true.
Paso 4
Finalmente, el operador + se aplica a !![].
El operador + convierte el valor booleano true en el número 1.
También puedes sumar
console.log(+!![] + 4); // 5