Operadores ariméticos
Como indicamos al inicio, en JavaScript (al igual que en la mayoría de lenguajes) disponemos de los operadores aritméticos usuales: suma, resta, división y multiplicación, y algunos otros con los que posiblemente estés menos familiarizado (módulo, incremento/decremento).
Vamos a ver a través de ejemplos el uso de cada uno de estos operadores. También veremos cómo podemos usar números o variables numéricas indistintamente con estos operadores, y cómo podemos combinar estos operadores con el operador de asignación » = » para simplificar expresiones, una notación que debes entender si estudias scripts realizados por otros programadores porque es muy utilizada.
Aquí te mostramos el primer ejemplo. Puedes pegar el código en el editor online para comprobar su resultado y por supuesto modificar el código para probar por ti mismo (en estos ejemplos hemos incluido ya las etiquetas <script>):
1 2 3 4 5 6 7 8 |
<script> //aunque no es necesario dejar espacios en blanco entre números y operadores, por claridad, los hemos separado con uno var operacion1 = 3 - 1 * 4; var operacion2 = 8 + 6 / 2; var operacion3 = 10 % 3; document.write("operacion 1 = " + operacion1 + '<br>' + "operacion 2 = " + operacion2 + '<br>' + "operacion 3 = " + operacion3); </script> |
El operador módulo ( % ) que quizás no conozcas, al aplicarlo entre dos números o variables numéricas, nos da como resultado el resto de la división de ambos números o valores. En el ejemplo, 10 % 3, nos da 1, en 10 % 4, nos daría 2, y en 10 % 5, nos daría 0 al ser una división exacta.
Orden de aplicación de los operadores ariméticos
Si has ejecutado el anterior ejemplo, ¿se han obtenido los resultados que esperabas? En Javascript, como suele suceder en cualquier lenguaje de programación, hay una prelación de los operadores multiplicación y división sobre la suma y la resta, es decir, hay un orden de aplicación por el que las operaciones » 1 * 4 » y » 6 / 2 «, se realizan antes que las demás.
Si queremos alterar ese orden, podemos emplear paréntesis, por ejemplo en la forma:
- (3 – 1) * 4
- (8 + 6) / 2
Si sustituyes en el anterior código verás la diferencia de resultados.
Uso de números y variables númericas
Otra cuestión que ya hemos visto en anteriores ejemplos (como el cálculo de un precio con descuento e IVA), es que podemos poner en la expresión tanto valores númericos directamente (1,2,…), como variables que tengan un valor numérico asignado, o ‘mezclar’ ambas formas. Podemos utilizar números enteros y decimales (separados por punto ‘ . ‘ ), tanto positivos como negativos. Ejemplo:
1 2 3 4 5 6 7 8 9 |
<script> //calculamos la velocidad de un coche, pasado un tiempo, debido al efecto de una desaceleración de -2,5 m/s2 var velocidad1 = prompt("Introduce la velocidad inicial (m/s) = ", 30); //por defecto, 30 m/s var tiempo= prompt("Introduce el tiempo transcurrido (s) = ", 10); //por defecto 10 s var velocidad2 = velocidad1 -2.5 * tiempo //-2,5 debemos ponerlo como -2.5 (punto como separador decimal) document.write("Velocidad tras " + tiempo + " s = " + velocidad2 + " m/s"); </script> |
Combinación de operadores
Podemos combinar los operadores aritméticos con el operador de asignación » = » para simplificar expresiones. Mostramos algunos ejemplos de estas equivalencias:
- La expresión num = num + 5 equivale a: num += 5
- La expresión num = num - 2 equivale a: num -= 2
- La expresión num = num * 7 equivale a: num *= 7
- La expresión num = num / 4 equivale a: num /= 4
- La expresión num = num % 4 equivale a: num %= 4
Ten cuidado porque si escribes los operadores en orden inverso, poniendo delante el operador de asignación ‘ = ‘, en el caso de ‘ + ‘ y ‘ – ‘ , le vas a dar a la variable el valor positivo o negativo, respectivamente, del número que querías sumar o restar, y en el caso de ‘ * ‘ y ‘ / ‘ se producirá un error y no obtendrías nada.
Un ejemplo para visualizarlo mejor:
1 2 3 4 5 6 7 8 9 10 |
<script> var num = 8; document.write("El valor de num es: " + num + "<br>"); document.write("Resultado de num += 3: "); document.write(num += 3); document.write("<br>" + "Resultado de num =+ 3: "); document.write(num =+ 3); document.write("<br>" + "Resultado de num =- 3: "); document.write(num =- 3); </script> |
Operadores incremento y decremento
También presentamos los operadores incremento ( ++ ) y decremento ( − − ). Como sus nombres indican, aumentan o disminuyen en una unidad el valor de la variable numérica a la que se aplican.
Se pueden aplicar a la izquierda o a la derecha del nombre de la variable. En el primer caso (izquierda), el incremento/disminución se realiza antes de la asignación, y en el segundo (derecha), toma efecto con posterioridad.
Seguro que lo entendemos mejor con un ejemplo:
1 2 3 4 5 6 7 |
<script> var num1Inicio = 6; num2Inicio = 6; var num1Final = num1Inicio++; var num2Final = ++num2Inicio; document.write("Partimos de una valor = 6" + "<br>"); document.write("Cuando aplicamos num++, obtenemos: " + num1Final + "<br>") document.write("Cuando aplicamos ++num, obtenemos: " + num2Final + "<br>"); </script> |
El incrementar o disminuir en una unidad mediante este operador se utiliza mucho en los contadores para los bucles ‘for’, donde se va repitiendo una instrucción hasta que ese contador alcanza un valor. Lo veremos en ese apartado con un ejemplo.
Objeto Math
Además de estos operadores, Javascript, como sucede como otros muchos lenguajes de programación, nos ofrece más funciones para operar con números. Con ellos podremos calcular por ejemplo logaritmos, senos/cosenos, elevar a un exponente, redondear cifras, calcular máximos/mínimos… Lo veremos en el apartado posterior: ‘Métodos del objeto Math‘