Menu
Coddy logo textTech

Operadores lógicos Parte 3

Parte de la sección Fundamentos del Journey de JavaScript de Coddy — lección 21 de 77.

Al trabajar con expresiones lógicas, a veces necesitamos simplificarlas o reorganizarlas.

! (no) frente a dos condiciones unidas por && (y), puedes dividirlo en dos partes separadas. El && (y) se convierte en || (o), y cada parte obtiene su propio ! (no):

!(A && B) es lo mismo que (!A) || (!B)

Por ejemplo:

// Comprobemos si un número NO está (entre 1 y 10)
let number = 15

// Estas dos expresiones son equivalentes:
let result1 = !(number >= 1 && number <= 10)
let result2 = !(number >= 1) || !(number <= 10)

console.log(result1)  // Verdadero
console.log(result2)  // Verdadero

Lo opuesto también es correcto: !(A || B) es lo mismo que (!A) && (!B)

Por ejemplo:

// Comprobando si una persona NO es (estudiante o empleada)
let is_student = false
let is_employed = false
// Estas dos expresiones son equivalentes:
let result1 = !(is_student || is_employed)
let result2 = !is_student && !is_employed

console.log(result1)  // Verdadero
console.log(result2)  // Verdadero
challenge icon

Desafío

Principiante

Estás ayudando a una tienda de mascotas a crear un sistema para determinar si pueden vender una mascota a un cliente.

inicializa las siguientes variables:

  • has_license con el valor true
  • has_space con el valor false
  • has_experience con el valor true

Escribe las siguientes expresiones lógicas para determinar si:

  • can_sell_regular_pet: El cliente necesita O BIEN una licencia O experiencia, Y debe tener espacio
  • can_sell_exotic_pet: El cliente necesita TANTO una licencia COMO experiencia, Y debe tener espacio
  • cannot_sell_any_pet: El cliente NO tiene licencia Y NO tiene experiencia, O NO tiene espacio

Hoja de referencia

Las leyes de De Morgan te permiten simplificar expresiones lógicas moviendo el operador ! (not):

!(A && B) es lo mismo que (!A) || (!B)

// NO (entre 1 y 10)
let result1 = !(number >= 1 && number <= 10)
let result2 = !(number >= 1) || !(number <= 10)  // equivalente

!(A || B) es lo mismo que (!A) && (!B)

// NO (estudiante o empleado)
let result1 = !(is_student || is_employed)
let result2 = !is_student && !is_employed  // equivalente

Pruébalo tú mismo

// Inicializar variables

// Calcular condiciones
let can_sell_regular_pet = 
let can_sell_exotic_pet = 
let cannot_sell_any_pet =

// No elimines las líneas de abajo
console.log("Can sell regular pet:", can_sell_regular_pet)
console.log("Can sell exotic pet:", can_sell_exotic_pet)
console.log("Cannot sell any pet:", cannot_sell_any_pet)
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos