Curso de Javascript 1.2
En esta página:
Operadores
Los operadores nos permiten unir identificadores y literales para formar expresiones.
Las expresiones son el resultado de operaciones mátemáticas o lógicas. Un literal o una
variable son expresiones, pero también lo son esos mismos literales y variables unidos
entre sí mediante operadores.
JavaScript dispone de muchos más operadores que la mayoría de los lenguajes, si
exceptuamos a sus padres C, C++ y Java. Algunos de ellos no los estudiaremos debido a su
escasa utilidad y con algunos otros (especialmente el condicional) deberemos andarnos con
cuidado, ya que puede lograr que nuestro código no lo entendamos ni nosotros.
Operadores aritméticos
JavaScript dispone de los operadores aritméticos clásicos y algún que otro más:
Descripción |
Símbolo |
Expresión de ejemplo |
Resultado del ejemplo |
Multiplicación |
* |
2*4 |
8 |
División |
/ |
5/2 |
2.5 |
Resto de una división entera |
% |
5 % 2 |
1 |
Suma |
+ |
2+2 |
4 |
Resta |
- |
7-2 |
5 |
Incremento |
++ |
++2 |
3 |
Decremento |
-- |
--2 |
1 |
Menos unario |
- |
-(2+4) |
-6 |
Los operadores de incremento y decremento merecen una explicación auxiliar. Se pueden
colocar tanto antes como después de la expresión que deseemos modificar pero sólo
devuelven el valor modificado si están delante. Me explico.
a = 1;
b = ++a;
En este primer caso, a valdrá 2 y b 2 también. Sin embargo:
a = 1;
b = a++;
Ahora, a sigue valiendo 2, pero b es ahora 1. Es decir, estos operadores modifican siempre a
su operando, pero si se colocan detrás del mismo se ejecutan después de todas las demás
operaciones.
Operadores de comparación
Podemos usar los siguientes:
Descripción |
Símbolo |
Expresión de ejemplo |
Resultado del ejemplo |
Igualdad |
== |
2 == '2' |
Verdadero |
Desigualdad |
!= |
2 != 2 |
Falso |
Igualdad estricta |
=== |
2 === '2' |
Falso |
Desigualdad estricta |
!== |
2 !== 2 |
Falso |
Menor que |
< |
2 < 2 |
Falso |
Mayor que |
> |
3 > 2 |
Verdadero |
Menor o igual que |
<= |
2 <= 2 |
Verdadero |
Mayor o igual que |
>= |
1 >= 2 |
Falso |
La igualdad y desigualdad estricta son iguales a las normales pero hacen una
comprobación estricta de tipo. Han sido incluidos en el estándar ECMAScript y lo
soportan Netscape 4.06 y superiores y Explorer 3 y superiores. Hay que indicar que
versiones más antiguas de Netscape tratan la igualdad normal como si fuera estricta.
Operadores lógicos
Estos operadores permiten realizar expresiones lógicas complejas:
Descripción |
Símbolo |
Expresión de ejemplo |
Resultado del ejemplo |
Negación |
! |
!(2 = 2) |
Falso |
Y |
&& |
(2 = 2) && (2 >= 0) |
Verdadero |
Ó |
|| |
(2 = 2) || (2 <> 2) |
Verdadero |
Operadores de asignación
Normalmente los lenguajes tienen un único operador de asignación, que en JavaScript
es el símbolo =. Pero en este lenguaje, dicho operador
se puede combinar con operadores aritméticos y lógicos para dar los siguientes:
Operador |
Significado |
Operador |
Significado |
x += y |
x = x + y |
x -= y |
x = x - y |
x /= y |
x = x / y |
x *= y |
x = x * y |
x % y |
x = x % y |
|
|
Operadores especiales
Vamos a incluir en este apartado operadores que no hayan sido incluidos en los
anteriores. La concatenación de cadenas, por ejemplo, se realiza con el símbolo +. El operador condicional tiene esta estructura:
condicion ? valor1 : valor2
Si la condición se cumple devuelve el primer valor y, en caso contrario, el segundo.
El siguiente ejemplo asignaría a la variable a un 2:
a = 2 > 3 ? 1 : 2
Como podéis ver no resulta muy legible. Huid de este operador como de la peste. Evitad
la tentación. Procurad no usarlo. Yo he tenido que descifrar código escrito por mí un
par de meses antes que tenía esta clase de operadores, a veces incluso anidados. Todavía
tengo escalofríos al recordarlo.
Para tratar con objetos disponemos de tres operadores:
Descripción |
Símbolo |
Expresión de ejemplo |
Resultado del ejemplo |
Crear un objeto |
new |
a = new Array() |
a es ahora un vector |
Borrar un objeto |
delete |
delete a |
Elimina el vector anteriormente creado |
Referencia al objeto actual |
this |
|
|
this se suele utilizar en el código de los métodos
de un objeto para referirse a otros métodos o a propiedades de su mismo objeto.
|