Saltearse al contenido

Características de Operadores

Si bien conocemos el comportamiento de los operadores aritméticos, de asignación y de comparación, existen otros operadores que nos permiten realizar operaciones más complejas.

JavaScript cuenta con una gran cantidad de operadores y mecanismos que nos permiten simplificar la escritura de código y realizar operaciones más avanzadas. En este apartado, veremos algunos detalles sobre el uso y funcionamiento de estas características.

Cortocircuito

El intéprete de JavaScript evalúa las expresiones lógicas de izquierda a derecha, lo cual permite que se detenga la evaluación de la expresión si el resultado ya es conocido.

Este comportamiento se conoce como evaluación de cortocircuito (short-circuit evaluation), y es muy útil para simplificar la escritura de código y evitar errores.

La expresión lógica AND (&&) es un operador de cortocircuito en el cual todos los operandos son convertidos a valores booleanos. Si el resultado de una conversión es false, el operador AND detiene la evaluación y devuelve el valor original que causó la conversión a false.

1
<expresión falsa> && <expresión>

La <expresión> nunca es evaluada porque el primer operando es false. Si la <expresión> es una función, esta nunca es invocada.

Operador ternario

El operador ternario (?:) es un operador condicional que permite evaluar una expresión y devolver un valor en función de si la expresión es verdadera o falsa.

La sintaxis del operador ternario es la siguiente:

1
<expresión> ? <valor si verdadero> : <valor si falso>

Este operador abstrae el flujo de control de una sentencia if-else en una sola línea, lo cual permite simplificar la escritura de código.

1
let valor = 10;
2
3
let mensaje =
4
valor > 0
5
? "El valor es positivo"
6
: "El valor es negativo o cero";
7
console.log(mensaje);

Por supuesto, el operador ternario puede ser anidado para evaluar múltiples condiciones.

La sintaxis del operador ternario anidado es la siguiente:

1
<expresión> ? <valor si verdadero> : <expresión> ? <valor si verdadero> : <valor si falso>

Este operador permite evaluar múltiples condiciones en una sola línea, lo cual puede simplificar la escritura de código.

1
let valor = 10;
2
3
let mensaje =
4
valor > 0
5
? "El valor es positivo"
6
: valor < 0
7
? "El valor es negativo"
8
: "El valor es cero";
9
console.log(mensaje);

Operador de propagación

La sintaxis extendida (spread syntax) es un mecansimo que permite a un elemento iterable, como un arreglo o un objeto, ser expandido en lugares donde cero o más argumentos (para llamadas de función) o elementos (para arreglos literales) son esperados. Para esto se emplea el operador de propagación (...) como prefijo del elemento iterable.

1
let arreglo = [1, 2, 3];
2
3
let nuevo_arreglo = [0, ...arreglo, 4, 5];
4
console.log(nuevo_arreglo); // [0, 1, 2, 3, 4, 5]

En este caso, el operador de propagación ... permite expandir los elementos del arreglo arreglo en el nuevo arreglo nuevo_arreglo.

También es posible utilizar el operador de propagación en la asignación de arreglos, donde podremos desestructurar el arreglo en variables individuales.

1
let arreglo = ["Python", "Java", "C++", "JavaScript"];
2
3
let [primer_elemento, ...resto_elementos] = arreglo;
4
console.log(primer_elemento); // 'Python'
5
console.log(resto_elementos); // ['Java', 'C++']

Bibliografía