← JavaScript EspañolChapter 03 of 13

Operadores

## Objetivos de Aprendizaje - Dominar operadores aritméticos - Usar operadores de comparación - Trabajar con operadores lógicos - Entender operadores de asignación ## Operadores Aritméticos ### Operaciones Básicas ```javascript let a = 10, b = 3; console.log(a + b); // 13 (suma) console.log(a - b); // 7 (resta) console.log(a * b); // 30 (multiplicación) console.log(a / b); // 3.333... (división) console.log(a % b); // 1 (residuo) console.log(a ** b); // 1000 (exponenciación) ``` ### Incremento y Decremento ```javascript let x = 5; // Pre-incremento console.log(++x); // 6 (incrementa, luego usa) console.log(x); // 6 // Post-incremento console.log(x++); // 6 (usa, luego incrementa) console.log(x); // 7 // Pre-decremento console.log(--x); // 6 // Post-decremento console.log(x--); // 6 ``` ## Operadores de Comparación ### Igualdad ```javascript 10 === 10; // true (estricta) 10 !== 5; // true (estricta diferencia) 10 == "10"; // true (débil, convierte tipos) 10 != "5"; // true // Recomendado: usar === y !== ``` ### Comparación Numérica ```javascript 10 > 5; // true (mayor que) 10 < 5; // false (menor que) 10 >= 10; // true (mayor o igual) 10 <= 10; // true (menor o igual) ``` ### Casos Especiales ```javascript 0 === false; // false 0 == false; // true null === undefined; // false null == undefined; // true NaN === NaN; // false (NaN no es igual a nada) isNaN(NaN); // true ``` ## Operadores Lógicos ### AND, OR, NOT ```javascript true && true; // true (AND) true && false; // false true || false; // true (OR) false || false; // false !true; // false (NOT) !false; // true ``` ### Evaluación de Cortocircuito ```javascript // AND: retorna primer falsy o último valor false && console.log("no se ejecuta"); true && "hola"; // "hola" // OR: retorna primer truthy o último valor true || "hola"; // true false || "hola"; // "hola" // Valores falsy: false, 0, "", null, undefined, NaN ``` ### Tabla de Verdad | A | B | A && B | A \|\| B | !A | |---|---|---------|-----------|-----| | true | true | true | true | false | | true | false | false | true | false | | false | true | false | true | true | | false | false | false | false | true | ## Operadores de Asignación ### Asignación Simple ```javascript let x = 10; ``` ### Asignación Compuesta ```javascript let x = 10; x += 5; // x = 15 (x = x + 5) x -= 3; // x = 12 (x = x - 3) x *= 2; // x = 24 (x = x * 2) x /= 4; // x = 6 (x = x / 4) x %= 5; // x = 1 (x = x % 5) x **= 2; // x = 1 (x = x ** 2) ``` ## Operador Ternario ### Sintaxis ```javascript const edad = 20; const tipo = edad >= 18 ? "adulto" : "menor"; console.log(tipo); // "adulto" ``` ### Anidado (Evitar) ```javascript const nota = 85; const grado = nota >= 90 ? "A" : nota >= 80 ? "B" : nota >= 70 ? "C" : "F"; ``` ## Operador de Concatenación ### Para Strings ```javascript const nombre = "Juan"; const apellido = "Pérez"; const completo = nombre + " " + apellido; // "Juan Pérez" const template = `${nombre} ${apellido}`; // "Juan Pérez" ``` ## Operadores Bit a Bit ### Operaciones Bit a Bit Básicas ```javascript // AND 5 & 3; // 1 (0101 & 0011 = 0001) // OR 5 | 3; // 7 (0101 | 0011 = 0111) // XOR 5 ^ 3; // 6 (0101 ^ 0011 = 0110) // NOT ~5; // -6 (~0101 = ...1010 = -6) // Desplazamiento 2 << 1; // 4 (0010 << 1 = 0100) 4 >> 1; // 2 (0100 >> 1 = 0010) ``` ## Operador de Encadenamiento Opcional ### Acceso Seguro a Propiedades ```javascript const usuario = { perfil: { nombre: "Ana" } }; // Sin encadenamiento opcional (error si falta) const nombre = usuario.perfil.nombre; // Con encadenamiento opcional const nombre2 = usuario.perfil?.nombre; // "Ana" const edad2 = usuario.perfil?.edad; // undefined const ciudad = usuario.direccion?.ciudad; // undefined ``` ## Operador de Fusión Nula ### Valor por Defecto ```javascript const valor = null ?? "predeterminado"; // "predeterminado" const vacio = "" ?? "predeterminado"; // "" (no es null/undefined) const cero = 0 ?? "predeterminado"; // 0 (no es null/undefined) const config = userInput ?? defaultConfig; ``` ## Precedencia de Operadores ### Orden de Evaluación | Prioridad | Operadores | |------------|------------| | 1 | `()` (paréntesis) | | 2 | `**` | | 3 | `++`, `--`, `!` | | 4 | `*`, `/`, `%` | | 5 | `+`, `-` | | 6 | `<`, `>`, `<=`, `>=` | | 7 | `===`, `!==` | | 8 | `&&` | | 9 | `\|\|` | | 10 | `??` | | 11 | `?:` (ternario) | | 12 | `=`, `+=`, `-=`, etc. | ## Resumen - Aritméticos: `+`, `-`, `*`, `/`, `%`, `**` - Comparación: `===`, `!==`, `<`, `>`, `<=`, `>=` - Lógicos: `&&`, `||`, `!` - Asignación: `=`, `+=`, `-=`, etc. - Ternario: `condición ? valor1 : valor2` - Encadenamiento opcional: `?.` - Fusión nula: `??` - Usar paréntesis para clarificar el orden

Comments

Comments powered by Giscus

To enable comments, add your Giscus embed code here.

Learn more about Giscus →