Asignar clona algo que ya existe; los operadores crean algo que antes no estaba ahí.
En este capítulo vamos a tratar los que pueden considerarse los operadores más básicos y por tanto más habitualmente utilizados en la mayoría de lenguaje de programación: Los operadores de asignacion y los operadores aritmeticos.
Tambien cubriremos los operadores de concatenación de cadenas, que por su similitud con ciertos operadores artiméticos son susceptibles de ser expuestos en este capítulo.
Índice
- Asignación simple
- Operadores aritméticos
- Concatenación
- Asignación compuesta
- Objetivos conseguidos
- Próximos pasos
Asignación simple
La asignación simple en JS se basa en el símbolo =
. En los capítulos anteriores hemos visto sobrados ejemplos de su uso que reusamos a continuación:
// Asigna la cadena "Hola, mundo!" a la variable message
let message = "Hola, mundo!"
// Reasigna el número 123457 a la variable message
message = 123456
// Asigna el valor true a la constante truthy
const truthy = true
// Asigna el valor de una constante a una variable
let alsoTruthy = truthy
Operadores aritméticos
Los operadores aritméticos en JS nos permiten realizar operaciones aritméticas.
Hemos dividido los operadores aritmeticos en dos grupos: Aquellos que requieren dos operandos, a los que hemos llamado operadores binarios, y aquellos que requieren un único operando, a los que hemos llamado operadores unarios.
Operadores binarios
Los operadores aritméticos binarios son aquellos que toman dos operandos numéricos y devuelven también un valor numérico.
Operador | Operación | Ejemplo |
---|---|---|
+ |
Suma |
|
- |
Resta |
|
* |
Multiplicación |
|
/ |
División |
|
** |
Exponencial (potencia) |
|
% |
Resto de división |
|
Operadores unarios
Los operadores unarios son aquellos que operan con un único operando y son dos: el operador de incremento y de decremento.
El operador de incremento, ++
, incrementa el valor de una variable en 1 y actualiza el valor de la variable. Por contra, el operador --
decrementa el valor de una variable en 1. El siguiente ejemplo ilustra lo anterior:
let unaryVar = 2
console.log(unaryVar) // Imprime "2"
unaryVar++
console.log(unaryVar) // Imprime "3"
unaryVar--
console.log(unaryVar) // Imprime "2"
La ubicación del operador unario, antes o despues de la variable sobre la que opera, influye en el comportamiento:
- Si el operador unario precede a la variable (
++unaryVar
), primero se modifica el valor de la variable y luego se devuelve dicho valor. - Si la variable precede al operador unario (
unaryVar++
), primero se devuelve el valor de la variable para luego modificarlo.
let varA = 2
// Primero devuelve el valor, luego incrementa
const varB = varA++
console.log(varB) // Imprime "2"
console.log(varA) // Imprime "3"
// Primero decrementa, luego devuelve el valor
const varC = --varA
console.log(varC) // Imprime "2"
console.log(varA) // Imprime "2"
Precedencia de operadores
La precedencia de operadores en JS es la habitual en otros lenguajes de programación:
- Primero se aplica el operador exponencial (
**
) - A continuación se aplican los operadores multiplicativos (
*
,/
y%
) - Finalmente se aplican los operadores aditivos (
+
y-
)
// Imprime "7"
console.log(2 ** 2 + 6 / 2)
Como en otros lenguajes de programación, el uso de paréntesis altera la predencia de los operadores:
// Imprime "16"
console.log(2 ** ((2 + 6) / 2))
Conversión implícita
En el capítulo Tipos de datos básicos: bool, number y string vimos cómo convertir valores de tipo string o boolean en valores numéricos.
Los métodos expuestos pueden considerarse como conversiones explícitas, ya que requieren que el programador explícitamente requiera la ejecución de una conversión.
Por contra, JS es capaz de realizar conversiones implícitas de valores string o boolean a valores numéricos si dichos valores se utilizan como operandos de operaciones aritmeticas:
// Imprime "3"
console.log(2 + true)
// Imprime "10"
console.log(5 * "2")
Si la conversión no puede realizarse, el resultado de la operación aritmetica devuelve el valor especial NaN
, ya expuesto en el capítulo Valores especiales de datos básicos: null, undefined, NaN e Infinity:
Concatenación
Hasta ahora hemos visto el operador de asignacion, que nos permite asignar valores de cualquier tipo (numéricos, booleanos o alfanuméricos), y operadores aritmeticos, que nos permiten operar con valores numéricos
El operador de concatenación (+
) nos permite combinar dos valores de tipo string
para crear un nuevo valor.
const firstWord = "Hola"
const secondWord = "mundo"
const helloWorld = firstWord + ", " + secondWord + "!"
console.log(helloWorld) // Imprime "Hola, mundo!"
Conversión implícita
Como en el caso de los operadores aritméticos, JS es capaz de llevar a cabo conversiones implícitas si se utilizan valores de tipo number
o boolean
en operaciones de concatenación:
const one = 1
console.log("Número " + one) // Imprime "Número 1"
console.log("True no es " + false) // Imprime "True no es false"
Asignación compuesta
La asignación compuesta es un híbrido entre operacion aritmética, especificamente suma o resta, y asignación: Permite, con un solo operador, incrementar o decrementar el valor de una variable en una cierta cantidad y reasignar el resultado en la misma variable.
let myVar = 1
console.log(myVar += 2) // Imprime "3"
console.log(myVar) // Imprime "3"
myVar-=3
console.log(myVar) // Imprime "0"
La asignación compuesta puede aplicarse también sobre valores de tipo string
permitiendo, con un solo operador, concatenar el valor de una variable de tipo string
con un valor literal y reasignar el resultado en la misma variable.
let myVar = "Hola, "
console.log(myVar += "mundo!") // Imprime "Hola, mundo!"
console.log(myVar) // Imprime "Hola, mundo!"
Objetivos conseguidos
En este capítulo has aprendido a asignar valores a constantes y variables mediante el uso del operador de asignación (=
).
También has aprendido cuáles son los operadores aritmeticos utilizados en JS, tanto los binarios (+
, -
, *
, /
, %
y **
) como los unarios (++
, --
), así como su orden de precedencia.
Además has aprendido que JS es capaz de realizar conversiones implicitas cuando en operaciones aritméticas se utilizan operandos no numéricos.
Has visto también cómo concatener valores de tipo string
y que JS, como en el caso de los operadores aritméticos, es capaz de llevar a cabo conversiones implícitas al concatener valores de tipo string
con valores de tipo number
o boolean
.
Por último, has aprendido cuáles son los operadores de asignación compuesta (+=
y -=
), que permiten incrementar o decrementar una variable y reasignar el resultado en una sola operación.
Próximos pasos
El próximo capítulo abordará el uso de comparadores y operadores lógicos. Junto con este capítulo, te permitirá tener una visión completa de todas las operaciones que pueden realizarse en JS independientemente de que los operandos sean de tipo number
, string
o boolean
.