En JavaScript, un operador es un símbolo especial utilizado para realizar operaciones sobre algún valor o una variable
Es necesario conocer la diferencia entre operador y operando. El operador son los símbolos que realizan la acción (+,-,*,/) entre otros. Los operandos son los valores o variables que van a ser ejecutadas por el operador (1, 2, x , y).
JavaScript cuenta con operadores binarios y unitarios, además un operador ternario también llamado operador condicional.
El operador binario requiere dos o más operando, ya sean variables o valores.
x * y; // Operandos x,y Operador (*)x + y + z; // Operandos x,y,z Operador (+)
Los operadores unitarios solo requieren un operando, ya sea antes o después del operador.
contador++; // Operando 'contador' Operador (++)contador--; // Operando 'contador' Operador (--)!existe; // Operando 'existe' Operador (!)typeof texto; // Operando 'texto' Operador (typeOf)
El operador ternario es el único que utiliza tres operandos, un if/else abreviado
condition ? val1 : val2;
Si la condición es true
retorna el primer valor val1
de lo contrario, retorna el segundo valor val2
const edad = 18;const mensaje = edad >= 18 ? 'Eres mayor de edad' : 'Eres menor de edad';console.log(mensaje); // Resultado: "Eres mayor de edad"const numero = 7;const esPar = numero % 2 === 0 ? 'Es par' : 'Es impar';console.log(esPar); // Resultado: "Es impar"
Los operadores en JavaScript son clasificados en tipos, aquí te dejo los más usados 👇
Los operadores aritméticos se utilizan para realizar operaciones matemáticas básicas.
const x = 5;const y = 10;console.log(x + y); // Output: 15console.log(x - y); // Output: -5console.log(x * y); // Output: 50console.log(x / y); // Output: 0.5console.log(x % y); // Output: 5console.log(2 ** 3); // Output: 8let d = 3;let f = 3;console.log(d++); //Output: 3 Explicación: devuelve 3 y el valor de 'd' se establece en 4console.log(++f); //Output: 4 Explicación: Establece 'f' en 4 y devuelve 4let g = 3;let h = 3;console.log(g--); //Output: 3 Explicación: devuelve 3 y el valor de 'g' se establece en 2console.log(--h); //Output: 4 Explicación: El valor se asigna a 'h' y devuelve 3
Los operadores de asignación se utilizan para asignar valores a variables. El operador de asignación simple es el igual (=) y los compuestos son abreviación de operaciones como las siguientes.
// Nota: Para cada ejemplo x = 10, y = 5 let x = 10;let y = 5;x = y; // Equivalente a x = y;console.log(x); // Output: 5x += y; // Equivalente a x = x + y;console.log(x); // Output: 15x -= y; // Equivalente a x = x - y;console.log(x); // Output: 5x *= y; // Equivalente a x = x * y;console.log(x); // Output: 50x /= y; // Equivalente a x = x / y;console.log(x); // Output: 2x %= y; // Equivalente a x = x % y;console.log(x); // Output: 0let a = 2;let b = 3;a **= b; // Equivalente a x = x ** y;console.log(a); // Output: 8
Los operadores de comparación toman dos operandos y retornar un valor booleano ya sea true o false, dependiendo del operador. Estos son utilizados en condicionales y ciclos.
2 == '2'
va a ser true
.const a = 5;const b = 2;const c = 'hello';console.log(a == 5); // Output: trueconsole.log(b == '2'); // Output: trueconsole.log(c == 'Hello'); // Output:false
2 == '2'
va a ser false
dado que está comparando un Number
con un String
console.log(5 === 5); // Output: trueconsole.log(5 === '5'); // Output: falseconsole.log(5 === Number('5')); // Output: trueconsole.log(5 === 6); // Output: falseconsole.log('hello' === 'hello'); // Output:true
true
si los operandos no son iguales, no diferencia entre tipos de datos.console.log(3 != 5); // Output: trueconsole.log(3 != 3); // Output: falseconsole.log(3 != '3'); // Output: falseconsole.log('hello' != 'Hello'); // Output:true
Explicación console.log('hello' != 'Hello')
las primeras letras son transformadas a Unicode 'H' y 'h'. Estos caracteres no tienen el mismo código por ende no son igual lo cual retorna true
.
true
si los operandos no son iguales, diferencia de tipos de datosconsole.log(3 !== '3'); // Output: trueconsole.log(3 !== 3); // Output: falseconsole.log(3 !== '3'); // Output: trueconsole.log('hello' !== 'Hello'); // Output:true
true
si el primer operando es mayor al segundoconsole.log(5 > 2); // Output: trueconsole.log(2 > 5); // Output: falseconsole.log(5 > '2'); // Output: trueconsole.log('hello' > 'Hello'); // Output:true
Explicación: console.log('hello' > 'Hello')
las primeras letras son transformadas a Unicode 'h' > 'H' y el código de 'h' es mayor al de 'H' por esta razón el output es true
true
si el primer operando es menor al segundoconsole.log(2 < 5); // Output: trueconsole.log(5 < 2); // Output: falseconsole.log(2 < '5'); // Output: trueconsole.log('Hello' < 'hello'); // Output:true
true
si el primer operando es mayor o igual al segundoconsole.log(5 >= 2); // Output: trueconsole.log(2 >= 5); // Output: falseconsole.log(5 >= '2'); // Output: trueconsole.log('hello' >= 'Hello'); // Output:true
true
si el primer operando es menor o igual al segundoconsole.log(2 <= 5); // Output: trueconsole.log(5 <= 2); // Output: falseconsole.log(2 <= '5'); // Output: trueconsole.log('Hello' <= 'hello'); // Output:true
Los operadores lógicos se utilizan para combinar expresiones booleanas ya sean condiciones o variables
console.log(true && true); // Output: trueconsole.log(true && false); // Output: falseconsole.log(false && true); // Output: falseconsole.log(false && false); // Output: falseconsole.log(true || true); // Output: trueconsole.log(true || false); // Output: trueconsole.log(false || true); // Output: trueconsole.log(false || false); // Output: falseconsole.log(!true); // Output: falseconsole.log(!false); // Output: trueconst x = 5;const y = 3;const z = 3;console.log(x === y && x === z); // Output: falseconsole.log(x === y || y === z); // Output: trueconsole.log(!(x === y)); // Output: true
Los operadores de cadena se utilizan para unir cadenas de texto
template literals
`` para concatenar cadenas de texto y variablesconst nombre = 'Juan';const apellido = 'Perez';console.log(nombre + ' ' + apellido); // Output: Juan Perezconsole.log('Hola ' + nombre + ' ' + apellido); // Output: Hola Juan Perezconsole.log('Hola ' + nombre + ' ' + apellido + '\n' + 'Bienvenido');/* Output: Hola Juan PerezBienvenido*//* template literals */console.log(`${nombre} ${apellido}`); // Output: Juan Perezconsole.log(`Hola ${nombre} ${apellido}`); // Output: Hola Juan Perezconsole.log(`Hola ${nombre} ${apellido} \nBienvenido`);/* Output:Hola Juan PerezBienvenido*/
Los operadores unarios se utilizan para realizar una operación en un solo operando
/* delete */const persona = { nombre: 'Juan', apellido: 'Perez',};console.log(persona); // Output: {nombre: "Juan", apellido: "Perez"}delete persona.apellido;console.log(persona); // Output: {nombre: "Juan"}console.log(typeof 5); // Output: numberconsole.log(typeof '5'); // Output: stringconsole.log(typeof true); // Output: boolean/* typeof */const myFun = new Function('5 + 2');const foo = ['Apple', 'Mango', 'Orange'];const today = new Date();console.log(typeof {}); // Output: objectconsole.log(typeof undefined); // Output: undefinedconsole.log(typeof null); // Output: object Explicación: null es un objeto en JavaScriptconsole.log(typeof myFun); // Output: functionconsole.log(typeof foo); // Output: object Explicación: los arreglos son objetos en JavaScriptconsole.log(typeof today); // Output: object Explicación: las fechas son objetos en JavaScript/* void */console.log(void 0); // Output: undefinedconsole.log(void 1); // Output: undefinedconsole.log(void 'hola'); // Output: undefinedconsole.log(void true); // Output: undefinedvoid function testFunction() { console.log('funcion ejecutada');}; // Output: undefined e imprime en consola "funcion ejecutada"testFunction(); // ejecuta la función testFunction
Los operadores relacionales comparan sus operandos y devuelven un valor Boolean
operando1 instanceof operando2
/* instanceof */const persona = { nombre: 'Juan', apellido: 'Perez',};console.log(persona instanceof Object); // Output: trueconsole.log(persona instanceof Array); // Output: falseconsole.log(persona instanceof Date); // Output: falsevar now = new Date();console.log(now instanceof Date) // Output: true/* in */const persona = { nombre: 'Juan', apellido: 'Perez',};if('nombre' in persona){ console.log('La propiedad nombre existe en el objeto persona');}console.log('nombre' in persona); // Output: trueconsole.log('apellido' in persona); // Output: trueconsole.log('edad' in persona); // Output: false
Si desarrollas con JavaScript siempre vas a utilizar los operadores en tu diario vivir, es mejor conocer su funcionamiento y como utilizarlos correctamente. Espero que este artículo te haya sido de ayuda, si tienes alguna duda o sugerencia no dudes en escribirme.