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.