Curso IT Fundamentos JavaScript 040_Operadores
Los operadores de JavaScript se utilizan para realizar operaciones matemáticas, comparaciones, operaciones lógicas y otras operaciones, y devuelven resultados.
Operadores aritméticos
+: Suma-: Resta*: Multiplicación/: División%: Módulo (resto)**: Exponenciación
Ejemplo:
let a = 5;let b = 2;
console.log(a + b); // Salida 7console.log(a - b); // Salida 3console.log(a * b); // Salida 10console.log(a / b); // Salida 2.5console.log(a % b); // Salida 1console.log(a**b); // Salida 25Operadores de asignación
=: Asignación+=: Asignación de suma-=: Asignación de resta*=: Asignación de multiplicación/=: Asignación de división%=: Asignación de módulo**=: Asignación de exponenciación??=: Asignación nullish, la asignación solo ocurre cuando el valor de la variable es null o undefined
Ejemplo:
let x = 5;x += 2; // x = x + 2; Salida 7x -= 2; // x = x - 2; Salida 3x *= 2; // x = x * 2; Salida 10x /= 2; // x = x / 2; Salida 2.5x %= 2; // x = x % 2; Salida 1x **= 2; // x = x ** 2; Salida 25x ??= 2; // Salida 5, asigna 2 cuando x es null o undefinedconsole.log(x);Operadores de comparación
==: Igualdad (el tipo de valor se convierte automáticamente)===: Igualdad estricta (valor y tipo son iguales)!=: Desigualdad!==: Desigualdad estricta>: Mayor que<: Menor que>=: Mayor o igual que<=: Menor o igual que
Cuando se encuentran valores no numéricos, primero se convierten a valores numéricos y luego se comparan. Cuando se encuentran cadenas, se compara el código Unicode de los caracteres posición por posición.
Ejemplo:
let a = 5;let b = '5';let c = 10;
console.log(a == b); // Salida true, valores son igualesconsole.log(a === b); // Salida false, tipos no son igualesconsole.log(a != b); // Salida false, valores son igualesconsole.log(a !== b); // Salida true, tipos no son igualesconsole.log(a > c); // Salida false, 5 < 10console.log(a < c); // Salida true, 5 < 10console.log(a >= c); // Salida false, 5 <= 10console.log(a <= c); // Salida true, 5 <= 10Operadores lógicos
Los operadores lógicos, al procesar operandos, los convierten en valores booleanos y devuelven el valor original de ese operando.
&&: AND lógico
Se utiliza para verificar si todas las condiciones son true simultáneamente. Si todas las condiciones son true, el resultado de toda la expresión es true; de lo contrario, el resultado es false.
La operación AND busca el primer false de izquierda a derecha. Si encuentra false, detiene el cálculo y devuelve el valor original de ese operando (evaluación de cortocircuito). Si finalmente no hay false, devuelve el último true.
||: OR lógico
Se utiliza para verificar si al menos una condición es true. Si al menos una condición es true, el resultado de toda la expresión es true; si todas las condiciones son false, el resultado es false.
La operación OR busca el primer true de izquierda a derecha. Si encuentra true, detiene el cálculo y devuelve el valor original de ese operando (evaluación de cortocircuito). Si finalmente no hay true, devuelve el último false.
!: NOT lógico
Se utiliza para negar un valor booleano. Si un valor es true, usar el operador NOT lógico lo niega a false; si un valor es false, lo niega a true.
El NOT lógico también se puede usar para convertir valores no booleanos en valores booleanos. Convierte cualquier valor que no sea null, undefined, 0, NaN, "" (cadena vacía) a true, mientras que estos valores mismos se convierten a false.
Ejemplo:
let a = true;let b = false;let c = "hello";let d = null;
console.log(a && b); // Salida falseconsole.log(c && d); // Salida nullconsole.log(a || b); // Salida trueconsole.log(c || d); // Salida helloconsole.log(!a); // Salida falseconsole.log(!d); // Salida trueOperador ternario
condition ? expr1 : expr2: Si la condición es verdadera, devuelveexpr1, de lo contrario devuelveexpr2.
Ejemplo:
let age = 18;let status = (age >= 18) ? 'Adulto' : 'Menor de edad';console.log(status); // Salida 'Adulto'Operador de fusión nula
El operador de fusión nula (Nullish Coalescing Operator) es un operador utilizado para manejar valores predeterminados, generalmente usado para asegurar que una variable tenga un valor no nulo (ni null ni undefined). La sintaxis de este operador es ??.
Al usar el operador de fusión nula, devuelve el primer operando definido (ni null ni undefined). Si el primer operando es null o undefined, devuelve el segundo operando.
Ejemplo:
let num1 = 0;let num2 = 1;let result = num1 ?? num2;console.log(result); // Salida 0, porque num no es null o undefined
let user;console.log(user ?? "Anónimo"); // Salida Anónimo, porque user no está definidoOperadores bit a bit
&: AND bit a bit|: OR bit a bit^: XOR bit a bit~: NOT bit a bit<<: Desplazamiento a la izquierda>>: Desplazamiento a la derecha>>>: Desplazamiento a la derecha sin signo
Ejemplo:
let a = 5; // Binario: 0101let b = 3; // Binario: 0011
console.log(a & b); // Salida 1 (AND bit a bit)console.log(a | b); // Salida 7 (OR bit a bit)console.log(a ^ b); // Salida 6 (XOR bit a bit)console.log(~a); // Salida -6 (NOT bit a bit)console.log(a << 1); // Salida 10 (Desplazamiento a la izquierda)console.log(a >> 1); // Salida 2 (Desplazamiento a la derecha)Otros operadores
typeof: Devuelve una cadena que indica el tipo del operando no evaluado.instanceof: Se utiliza para probar si un objeto es una instancia de un tipo específico.
Ejemplo:
let str = 'Hello';console.log(typeof str); // Salida 'string'
let arr = [1, 2, 3];console.log(arr instanceof Array); // Salida true+ (Más)
En JavaScript, el signo más + tiene múltiples usos, incluyendo operaciones matemáticas, concatenación de cadenas y operaciones unarias.
Operación matemática
Ejemplo:
let a = 5;let b = 3;let result = a + b;console.log(result); // Salida 8Si ambos son números, + se usa para realizar suma matemática.
Concatenación de cadenas
Ejemplo:
let str1 = 'Hello';let str2 = ' World';let result = str1 + str2;console.log(result); // Salida 'Hello World'Si uno de los operandos es una cadena, + realizará concatenación de cadenas.
Operador más unario
Ejemplo:
let str = '42';let num = +str;console.log(num); // Salida 42Al usar + antes de un solo operando, puede convertir el operando en un número. Esta es la función del operador más unario.
Conversión de tipo
Ejemplo:
let num = 42;let str = '10';let result = num + str; // Conversión de tipo implícita (coerción de tipo)console.log(result); // Salida '4210'Si uno de los operandos es una cadena, + realizará conversión de tipo, convirtiendo los otros operandos en cadenas y luego realizando concatenación de cadenas.
Concatenación de arrays
Ejemplo:
let arr1 = [1, 2, 3];let arr2 = [4, 5, 6];let result = arr1 + arr2;console.log(result); // Salida '1,2,34,5,6'Cuando un operando es un array, + convertirá el array en una cadena y luego realizará concatenación de cadenas.
Casos especiales
Ejemplo:
let specialResult1 = '1' + 2 + 3;console.log(specialResult1); // Salida '123'
let specialResult2 = 2 + 3 + '1';console.log(specialResult2); // Salida '51'specialResult1: Debido a que la cadena aparece en el extremo izquierdo de +, los números subsiguientes se concatenarán como cadenas.
specialResult2: Debido a que la cadena aparece en el extremo derecho de +, los números anteriores primero se sumarán matemáticamente y luego se concatenarán.
- (Menos)
En JavaScript, el signo menos - es un operador utilizado para realizar resta matemática.
Resta matemática
Ejemplo:
let a = 5;let b = 3;let result = a - b;console.log(result); // Salida 2Si ambos son números, - se usa para realizar resta matemática.
Operador menos unario
Ejemplo:
let num = 42;let result = -num;console.log(result); // Salida -42Al usar - antes de un solo operando, puede realizar una resta unaria, convirtiendo el operando en su opuesto.
Conversión de tipo
Ejemplo:
let num1 = 42;let str = '10';let result = num1 - str;console.log(result); // Salida 32Si uno de los operandos es una cadena, - realizará conversión de tipo, convirtiendo los otros operandos en números y luego realizando resta matemática.
Caso especial
Ejemplo:
let specialResult = '10' - 2;console.log(specialResult); // Salida 8En este caso especial, dado que el contenido de la cadena puede convertirse exitosamente en un número, - realizará resta matemática.
=、==、=== (Asignación, igualdad no estricta, igualdad estricta)
En JavaScript, el signo igual = es un operador de asignación, mientras que == y === son operadores de comparación. La igualdad no estricta convierte ambos operandos al mismo tipo y luego realiza la comparación. En las comprobaciones condicionales, generalmente se usa === para comparaciones de igualdad estricta porque no realiza conversión de tipos.
Operador de asignación
= se usa para asignar el valor del lado derecho a la variable del lado izquierdo.
Ejemplo:
let x = 5;let y = 'Hello';console.log(x); // Salida 5console.log(y); // Salida 'Hello'En este ejemplo, = asigna el valor del lado derecho a las variables x e y del lado izquierdo.
Operadores de comparación
== y === se usan para comparar la igualdad de dos valores.
Ejemplo:
let a = 5;let b = '5';
console.log(a == b); // Salida trueconsole.log(a === b); // Salida falseAl realizar comparaciones de igualdad con ==, se realiza conversión de tipo, null == undefined da como resultado true.
Al realizar comparaciones de igualdad con ===, se requiere que tanto el valor como el tipo sean iguales, null === undefined da como resultado false.
NaN no es igual a ningún valor, incluido NaN mismo.
++、-- (Incremento, Decremento)
En JavaScript, el incremento (++) y el decremento (--) son operadores utilizados para aumentar o disminuir el valor de una variable.
Operador de incremento (++)
Después del uso, hará que la variable original aumente inmediatamente en 1. Incremento prefijo devuelve el valor después del incremento (nuevo valor); Incremento sufijo devuelve el valor antes del incremento (valor antiguo);
Ejemplo de incremento prefijo:
let a = 5;// Incremento prefijo, primero aumenta 1, luego usa el nuevo valorlet b = ++a;console.log(b); // Salida 6console.log(a); // Salida 6En este ejemplo, a primero aumentó en 1, luego b obtuvo el nuevo valor de a (6).
Ejemplo de incremento sufijo:
let x = 5;// Incremento sufijo, primero usa el valor actual, luego aumenta 1let y = x++;console.log(y); // Salida 5console.log(x); // Salida 6En este ejemplo, y primero obtuvo el valor actual de x (5), luego el valor de x aumentó en 1.
Operador de decremento (—)
Después del uso, hará que la variable original disminuya inmediatamente en 1. Decremento prefijo devuelve el valor después del decremento (nuevo valor); Decremento sufijo devuelve el valor antes del decremento (valor antiguo);
Ejemplo de decremento prefijo:
let p = 10;// Decremento prefijo, primero disminuye 1, luego usa el nuevo valorlet q = --p;console.log(q); // Salida 9console.log(p); // Salida 9En este ejemplo, p primero disminuyó en 1, luego q obtuvo el nuevo valor de p (9).
Ejemplo de decremento sufijo:
let m = 8;// Decremento sufijo, primero usa el valor actual, luego disminuye 1let n = m--;console.log(n); // Salida 8console.log(m); // Salida 7En este ejemplo, n primero obtuvo el valor actual de m (8), luego el valor de m disminuyó en 1.
Precedencia de operadores:
https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Operators/Operator_precedence