HTMLpointHTMLpoint HTMLpoint.com


 Operadores



Los operadores se dividen en:

  1. operadores de asignación;
  2. operadores aritméticos;
  3. operadores relacionales;
  4. operadores lógicos;
  5. operadores sobre bit, que suelen utilizarse sólo para generar colores;
  6. 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)


  Vuelve a principio de página