Los operadores se dividen en:
- operadores de asignación;
- operadores aritméticos;
- operadores relacionales;
- operadores lógicos;
- operadores sobre bit, que suelen utilizarse sólo para generar colores;
- operadores cadenas.
pueden ser unitarios o binarios: los primeros
precisan un único operando, los segundos, dos.
El primer operador que hay que conocer es eloperador de asignación
cuyo signo es el igual (=). Su uso en Javascript es similar al que tiene
en C y distinto del que posee en matemáticas porque sirve para asignar
un valor y no a establecer relaciones de igualdad. Para esto último existe
otro operador (= =). Con el uso del operador de asignación se crea como una fotocopia
del valor de la expresión que queda a la derecha del operador en el lado de la izquierda
del operador.
Los operadores aritméticos son binarios o unitarios. Los operadores unitarios
modifican el valor al que se aplican y son:
| Operador |
Símbolo |
Acción |
Incremento |
++ |
Incrementa una unidad |
Disminución |
-- |
Disminución |
Menos unitario |
- |
Vuelve negativo un número |
Los operadores unitarios matemáticos pueden colocarse antes (prefijos)
o después (sufijos) del operando y su valor varía según
esta posición, ya que el operador prefijo modifica el operando antes de
utilizar su valor, mientras eloperador sufjo modifica el operando después
de haber utilizado el valor. Un ejemplo puede facilitar la comprensión:
x=10;
y=x++;por lo que y=10 y x=11 |
x=10;
y=++x;por lo que y=11 y x=11 |
Los operadores binarios matemáticos no cambian el valor de los operandos,
sino que memorizan el resultado en un tercer operando. Incluyen las principales
operaciones aritméticas:
| Operador |
Símbolo |
Acción |
Suma |
+ |
Suma dos operandos |
Resta |
- |
Reste el segundo operando del primero |
Multiplicación |
* |
Multiplica los dos operandos |
| División |
/ |
Divide el primer operando por el segundo |
| Resto (módulo) |
% |
Facilita el resto de la división entre dos operandos |
no es posible, sin embargo, utilizar el operador de cálculo del módulo cuando
los operandos tienen coma móvil. El operador de división aplicado a variables
de tipo entero produce un resultado truncado en la parte decimal. Si se
divide el módulo entre cero, se tendrá una excepción en la ejecución: si
la operación excede del límite inferior (underflow), el resultado será cero;
si excede del límite superior (overflow), se obtendrá una aproximación.
El operador de asignación puede también ser compactado, es decir,
puede combinarse con un operador aritmético. IEn general, cuando las
expresiones son del tipo:
variable=variable operador expresión
pueden cambiarse en:
variable operador = expresión
es decir, se tiene la siguiente tabla:
| Escritura compacta |
Escritura equivalente |
| 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 |
Con operador relacional entendemos la relación que tiene un
valor respecto a otro. Se basan en el concepto de verdadero o falso y en todos
los casos operan con sólo dos estados diversos (0/1, encendido/apagado, verdadero/falso).
Los operadores relacionales son:
| Operador |
Acción |
| > |
Mayor que |
| >= |
Mayor o igual |
| < |
Menor que |
| <= |
Menor o igual |
| == |
Igual |
| != |
Distinto |
Los operadores relacionales, como ya hemos dicho, producen un resultado 1 si la
relación es verdadera, y 0 si la relación es falsa. Es importante comprender que
el output está constituido sólo por dos valores a fin de evitar confusiones
entre el operador de asignación y el de igualdad.
Los operadores lógicos son muy parecidos a los relacionales, en el sentido de que
dan también como output sólo dos valores que, en este caso, son: 0 si la expresión
lógica es verdadera, 1 si es falsa.
Los operadores lógicos son (el NOT es un operador unitario):
| Operador |
Símbolo |
Significado |
| AND |
& |
AND lógico |
| OR |
| |
OR lógico |
| AND |
&& |
AND valoración |
| OR |
| | |
OR valoración |
| XOR |
^ |
OR exclusivo |
| NOT |
! |
Negación |
La negación (!) equivale al complemento a uno (~). Los operadores &, | valoran
ambos lados del argomento y deciden el resultado. Los operadores && y ||
pueden emplearse para evitar la valoración de los operandos de la derecha si la
valoración es necesaria. Las tablas de verdad correspondientes son:
| X |
Y |
X&&Y |
X| |Y |
X^Y |
!X |
| 0 |
0 |
0 |
0 |
0 |
1 |
| 0 |
1 |
0 |
1 |
1 |
1 |
| 1 |
0 |
1 |
1 |
0 |
0 |
| 1 |
1 |
0 |
0 |
1 |
0 |
Estos operadores son muy útiles para agrupar diversas expresiones que, en otro
caso, se utilizarían con if nidificados.
Existen también operadores de asignación combinados con operadores lógicos (&=, |=,
^=).
Las operaciones bit a bit se ocupan de controlar e impostar los bit. Hay que
recordar que el resultado de estas operaciones no siempre es 0 ó 1, como para los
operadores lógicos.
Los operadores sono:
| Operador |
Acción |
| & |
AND |
| | |
OR |
| ^ |
XOR |
| ~ |
Complemento a uno |
| >> |
Shift a la derecha |
| << |
Shift a la izquierda |
| >>> |
Shift a la derecha rellenando los ceros |
Las tablas de verdad son las mismas que las de los operadores lógicos.
El operador AND bit a bit se puede concebir como un modo para cancelar un bit
llevándolo a 0. El operador OR bit a bit es el contrario de AND y puede
utilizarse para impostar en 1 un bit, mientras que el operador XOR puede
utilizarse para impostar en 1 un bit si los bit comparados son distintos.
Los operadores de shift corren todos los bit de una variable hacia la derecha o
hacia la izquierda un número determinado de posiciones y los nuevos bit que se crean
se impostan en 1, mientras que los bit que salen se pierden (excepto los del signo).
Las operaciones de shift son útiles para descifrar el input de un dispositivo externo,
como un conversor analógico/digital, y permiten realizar operaciones rapidísimas entre
enteros en cuanto el hecho de correrse a la derecha divide un número por dos, mientras
que correrse a la izquierda lo multiplica también por dos.
El operador de complemento a uno, por su parte, invierte el estado de los bit, por lo que
todos los 1 se cambiarán en 0, y viceversa. Naturalmente, dos operaciones de complemento
en el mismo número producen como resultado el número original.
Los operadores sobre cadenas son:
| Operador |
Nombre |
Sintaxis |
| + |
Suma |
cadena=cadenaA+cadenaB |
| += |
Adjunta |
cadena=cadenaA+="gorda" |
| == |
Igualdad |
if (cadenaA==cadenaB) |
| != |
Desigualdad |
if (cadenaA!=cadenaB) |