Sobes.tech
Junior

¿Qué hace el operador de doble signo de exclamación en el lenguaje de programación?

sobes.tech AI

Respuesta de la IA

Convierte un valor en booleano. Es equivalente a aplicar dos veces el operador no (!).

El primer ! convierte el valor a tipo booleano, invirtiéndolo. Por ejemplo, una cadena no vacía 'abc' se convierte en false, y 0 en true. El segundo ! invierte el resultado del primero, devolviendo la representación booleana original del valor. Así, 'abc' se vuelve true, y 0 false.

Ejemplos en JavaScript:

// Conversión de una cadena no vacía
console.log(!!'hola'); // true

// Conversión del número 0
console.log(!!0); // false

// Conversión de null
console.log(!!null); // false

// Conversión de undefined
console.log(!!undefined); // false

// Conversión de un array vacío
console.log(!![]); // true

// Conversión de un objeto vacío
console.log(!!{}); // true

Ejemplos en Python (aunque en Python no existe el operador nativo !!, se puede emular su comportamiento):

# Emulación con bool()
print(bool('hola')) # True
print(bool(0))     # False
print(bool([]))    # True
print(bool({}))    # True

# Emulación con not not
print(not not 'hola') # True
print(not not 0)     # False
print(not not [])    # True
print(not not {})    # True

El objetivo principal es la conversión explícita a booleano, que se usa frecuentemente para verificar la "verdad" (truthiness) de un valor en el contexto de operaciones booleanas y estructuras condicionales.