Conoce los operadores unarios de JavaScript
Resumen: en este tutorial, aprenderás a usar operadores unarios de JavaScript que toman un solo operando y realizan una operación.
¿Qué es un operador unario?
Los operadores unarios son operadores aritméticos ( +, -, *, /, **, % ) que realizan una acción sobre un solo operando.
Una operación unaria: es una operación que solo necesita un valor para operar. Esto quiere decir que un operador unario más un valor nos va a devolver otro valor
Introducción a los operadores unarios de JavaScript
Los operadores unarios trabajan en un valor. La siguiente tabla muestra los operadores unarios y su significado:
| Unary Operators | Name | Meaning |
|---|---|---|
| +x | unario más | Convertir un valor en un número |
| -x | unario menos | Convertir un valor en un número y negarlo |
| ++x | Operador de incremento (prefijo) | Suma uno al valor |
| –x | Operador de disminución (prefijo) | Restar uno al valor |
| x++ | Operador de incremento (postfijo) | Suma uno al valor |
| x– | Operador de disminución (Postfix) | Restar uno al valor |
Operador unario de más (+)
El operador unario más es un simple signo de más (+). Si colocas el signo más unario antes de un valor numérico, no hace nada. Por ejemplo
let x = 10;
let y = +x;
console.log(y); // 10
Cuando aplicas el operador unario más (+) a un valor no numérico, realiza una conversión de número utilizando la función Number() con las reglas de la siguiente tabla:
| Value | Result |
|---|---|
| boolean | Convierte false a 0, true a 1 |
| string | Convierte el valor de la cadena en función de un conjunto de reglas específicas |
| object | Llame al método valueOf() y/o toString() para obtener el valor para convertirlo en un número |
Por ejemplo, lo siguiente usa el operador unario más unario (+) para convertir la cadena '10' al número 10:
let s = '10';
console.log(+s); // 10
El siguiente ejemplo usa el operador más unario (+) para convertir un valor booleano en un número false a 0 y true a 1:
let f = false,
t = true;
console.log(+f); // 0
console.log(+t); // 1
Resultado:
0
1
Supongamos que tienes un objeto person con el método toString() de la siguiente manera:
let person = {
name: 'John',
toString: function () {
return '25';
},
};
console.log(+person);
Resultado:
25
En este ejemplo, aplicamos el operador unario más (+) en el objeto person que tiene el método toString(), el motor de JavaScript llama al método toString() para obtener el valor ('25') y convertirlo en un número. Lo siguiente agrega el método valueOf() al objeto person:
let person = {
name: 'John',
toString: function () {
return '25';
},
valueOf: function () {
return '30';
},
};
console.log(+person);
Resultado:
30
En este ejemplo, el objeto person tiene el método valueOf(), el motor de JavaScript lo llama en lugar del método toString() para obtener el valor a convertir.
Operador unario menos (-)
El operador unario menos es un solo signo de menos (-). Si aplica el operador unario menos a un número, pone en negativo el número. Por ejemplo:
let x = 10;
let y = -x;
console.log(y); // -10
Si aplicas el operador unario menos a un valor no numérico, convierte el valor en un número usando las mismas reglas que el operador unario más y luego niega el valor.
Operadores de incremento/decremento
El operador de incremento tiene dos signos unarios de más (++) mientras que el operador de disminución tiene dos signos unarios menos (--).
Tanto los operadores de incremento como los de decremento tienen dos versiones: prefijo y posfijo. Y coloca las versiones de prefijo y posfijo de los operadores de incremento o decremento antes y después de la variable a la que se aplican.
El siguiente ejemplo usa el operador de incremento de prefijo para agregar uno a una variable:
let age = 25;
++age;
console.log(age); // 26
Es equivalente a lo siguiente:
let age = 25;
age = age + 1;
console.log(age); // 26
El siguiente ejemplo usa el operador de decremento para restar uno de una variable:
let weight = 90;
--weight;
console.log(weight); // 89
Es equivalente a lo siguiente:
let weight = 90;
weight = weight - 1;
console.log(weight); // 89
Cuando aplicas el incremento o decremento usando prefijo, JavaScript cambia la variable antes de evaluar la declaración. Por ejemplo:
let weight = 90;
weight = ++weight + 5;
console.log(weight); // 96
En este ejemplo:
- Primero, aumente weight en el lado derecho para que
++weightsea91 - Segundo, agregue cinco a
++weightque devuelve96 - Tercero, asigna el resultado a
weightdel lado izquierdo.
Asimismo, el siguiente ejemplo utiliza un operador de decremento de prefijo:
let weight = 90;
weight = --weight + 5;
console.log(weight); // 94
En este ejemplo:
- Primero, resta uno a weight y
--weightdevuelve89 - En segundo lugar, agregue cinco a
--weightque devuelve94 - Tercero, asigne el resultado a weight del lado izquierdo.
El operador de incremento o decremento del sufijo cambia el valor después de que se evalúa la declaración. Por ejemplo:
let weight = 90;
let newWeight = weight++ + 5;
console.log(newWeight); // 95
console.log(weight); // 91
Cómo funciona.
- Primero, agregue cinco a
weight (90)y asigne el resultado anewWeight (95) - En segundo lugar, agregue uno a la variable weight después de que se complete la segunda declaración, el weight se convierte en
91. - En tercer lugar, envía
newWeightyweighta la consola.
Al aplicar el operador de incremento/decremento a un valor no numérico, realiza los siguientes pasos:
- Primero, convierte el valor en un número usando las mismas reglas que el operador unario más
(+). - Luego, suma uno o resta uno del valor.
Resumen
- Los operadores unarios trabajan en un valor.
- Unario más (+) o menos (-) convierte un valor no numérico en un número. El menos unario niega el valor después de la conversión.
- El operador de incremento de prefijo suma uno a un valor. El valor se cambia antes de que se evalúe la declaración.
- El operador de incremento de sufijo suma uno a un valor. El valor se cambia después de evaluar la declaración.
- El operador de decremento de prefijo resta uno de un valor. El valor se cambia antes de que se evalúe la sentencia.
- El operador de decremento posfijo resta uno de un valor. El valor se cambia después de evaluar la declaración.
