Operadores en JavaScript y su precedencia
Javascript posee operadores para tipos y objetos, estos operadores permiten formar expresiones, a continuación veremos los siguientes operadores que tiene javascript:
- Operadores de Asignacion
- Operadores de comparación
- Operadores aritmeticos
- Operadores bit a bit
- Operadores logicos
- Operadores de cadena
- Operadore condicional
- Operador coma
- Operadores unarios
- Operadores relacionales
Operadores de asignación
Un operador de asignación asigna un valor a su operando izquierdo basándose en el valor de su operando derecho
- Asignación: x = y
- Asignación de adición: x += y -> x = x + y
- Asignacion de resta : x -= y -> x = x -y
- Asignación de multiplicacion = x *= y – >x = x * y
- Asignación de division = x /= y -> x = x / y
- Asignación de residuo = x %= y -> x = x % y
- Asignación de exponenciación x **= y -> x = x ** y
- Asignación de desplazamiento a la izquierda : x <<= y -> x = x << y
- Asignación de desplazamiente a la derecha : x >>=y -> x = x >> y
- Asignación de desplazamiento a la derecha sin signo: x >>>= y -> x = x >>> y
- Asignación AND bit a bit : x &= y -> x = x & y
- Asignacion XOR bit a bit : x ^=y -> x = x ^ y
- Asignación OR bit a bit : x |= y -> x = x | y
- Asignación AND lógico : x &&= y -> x && ( x = y)
- Asignación OR logico : x ||= y -> x || (x = y)
- Asignación de anulación lógica : x ??= y -> x ?? (x = y)
Operadores de comparación
Un operador de comparación compara sus operandos y devuelve un valor lógico en función de si la comparación es verdadera ( true ) o falsa (false) . Los operandos pueden ser valores numéricos, de cadena, lógicos u objetos.
- operadore igual ( == ) Devuelve true si los operandos son iguales
- Operadro no es igual ( != ) Devuelve true si los operandos no son iguales
- Oeprando Estrictamente igual ( ===) devuelve true si los operando son iguales y del mismo tipo
- Operando Desigualdad Estricta ( !== ) devuelve true si los operando son iguales pero no del mismo tipo
- Operando mayor que ( >) Devuelve true si el operando izquierdo es mayor que el operando derecho
- Operando mayor o igual que ( >= ) Devuelve true si el operando izquierdo es mayor o igual que el operando derecho
- Operando menor que ( <) Devuelve true si el operando izquierdo es menor que el operando derecho
- Operando Menor o igual ( <=) Devuelve true si el operando izquierdo es menor o igual que el operando derecho
Operadores aritméticos
Un operador aritmético toma valores numéricos y devuelve un solo valor numérico. Los operadores aritméticos estándar son :
- Suma : +
- Resta: –
- Multiplicación: *
- Division : /
Estos operadores funcionan como lo hacen en la mayoría de otros lenguajes de programación cuando se usan con números de punto flotante, ademas de los operadores aritméticos estándar javascript proporciona también los enumerados a continuación
- Residuo o modulo : ( %) devuelve el resto entero de dividir los dos operandos
- Incremento : ++ Agrega uno a su operando
- Decremento : — Resta uno a su operando
- Negación unaria: – Devuelve la negación de su operando
- Positivo unario: + Intenta convertir el operando en un numero si aún no lo es
- Operador de exponenciación: ** Calcula la base a la potencia de exponente, es decir, baseexponente
Operadores bit a bit
Un operador bit a bit trata a sus operandos como un conjunto de 32 bits ( ceros y unos), en lugar de números decimales, hexadecimales u octales. Los operadores bit a bit realizan su operaciones en tales representacion binarias , pero devuelven valores numéricos estándar en javascript
La siguiente tabla resume los operadores bit a bit de javascript
Operador | Uso | Descripción |
---|---|---|
AND a nivel de bits | a & b | Devuelve un uno en cada posición del bit para los que los bits correspondientes de ambos operandos son unos. |
OR a nivel de bits | a | b | Devuelve un cero en cada posición de bit para el cual los bits correspondientes de ambos operandos son ceros. |
XOR a nivel de bits | a ^ b | Devuelve un cero en cada posición de bit para la que los bits correspondientes son iguales. [Devuelve uno en cada posición de bit para la que los bits correspondientes son diferentes]. |
NOT a nivel de bits | ~ a | Invierte los bits de su operando. |
Desplazamiento a la izquierda | a << b | Desplaza a en representación binaria b bits hacia la izquierda, desplazándose en ceros desde la derecha. |
Desplazamiento a la derecha de propagación de signo | a >> b | Desplaza a en representación binaria b bits a la derecha, descartando los bits desplazados. |
Desplazamiento a la derecha de relleno cero | a >>> b | Desplaza a en representación binaria b bits hacia la derecha, descartando los bits desplazados y desplazándose en ceros desde la izquierda. |
Operadores logicos
los operadores lógicos se utilizan normalmente con valores booleanos ( lógicos ) ; cuando lo son, devuelven un valor booleano. Sin embargo, los operadores && y. || en realidad devuelven el valor de uno de los operandos especificados, por lo que si estos operadores se utilizan con valores no booleanos, pueden devolver un valor no booleano. Los operadores lógicos son los siguientes:
- And logico : (expr1 && expr2) devuelve true si ambos operandos son true, de lo contrario devuelve false
- Or logico : ( expr1 || expr2 ) devulve true si alguno de los operandos es true; si ambos son false devuelve false
- Not logico ( !expr ) Devuelve lo contrario del operando
Operadores de cadena
Además de los operadores de comparación, que se pueden usar en valores de cadena, el operador de concatenación ( + ) concatena dos valores de cadena, devolviendo otra cadena que es la union de los dos operando de cadena.
console.log( "mi " + "cadena"); // la consola vemos "mi cadena"
- Operador de asignación abreviada += tambien se puede utilizar para concatenar cadenas
var string = "mi"
string += "cadena";
// se evalua como "mi cadena" y asigna el valor a la variable string
Operadores condicionales
Los condicionales son expresiones que nos permiten ejecutar una secuencia de instrucciones u otra diferente dependiendo de lo que estemos comprobando. Permiten establecer el flujo de ejecución de los programas de acuerdo a determinados estados.
- Asignación condicional o operador ternario: Este tipo de asignacion es tambien conocidad como el if simplificado u operador ternario. Sirve para asignar en una sola linea un valor determinado si la condición que se evalua es true o si es false.
condicion ? valor_si_es_true : valor_si_es_false
Operador coma
El operador coma ( , ) simplemente evalua ambos operandos y devuelve el valor del ultimo operando. Este operador se utiliza principalmente dentro de un bucle for, para permitir que se actualicen múltiples variables cada vez a traves del bucle.
Operadores unarios
Una operaciçon unaria es una operación de un solo operando
- delete: el operador delete elimina la propiedad de un objeto
// la sintaxis es:
delete object.property;
delete object[propertyKey]
delete objectName[index];
delete property; // legal dentro de una declaración with
donde object es el nombre del un objeto, property es la propiedad existente y propertKey es una cadena o símbolo que hace referencia a una propiedad existente, Si el operador delete tiene éxito , elimina la propiedad del objeto . Intentar acceder a el después dará como resultado undefined. El operador delete devuelve true si la operación es posible, devuelve false si la operación no es posible.
- typeof: El operador typeof se utiliza de la siguientes formas
typeof operand
typeof (operand)
El operador typeof devuelve una cadena que indica el tipo de operando no evaluado,Operando es la cadena, variable, palabra clave u objeto para el que se devolverá el tipo
// definimos las siguientes variables
vare myFace = new Function("10+1);
var shape = "round";
var size = 1;
var foo = ["Apple", "Mango", "Orange"];
var today = new Date();
// el operador typeof devuelve
typeof myFace; // devuelve "function"
typeof shape; // devuelve "string"
typeof size; // devuelve "number"
typeof foo; // devuelve "object"
typeof today; // devuelve object
typeof doesntExist; // devuelve "undefined"
// para las palabras true y false el operador typeof devuelve
typeof true; // devuelve "boolean"
typeof false; // devuelve "object"
- Operador void : el operador void se utiliza de cualquiera de estas formas:
void ( expresion )
void expression
El operador void especifica una expresión que se evaluará sin devolver un valor. expresion es una expresión de javascript para evaluar. Los paréntesis que rodean la expresión son opcionales, pero es un buen estilo usarlos
Operadores relacionales
- in El operador in devuelve true si la propieda especificada está en el objeto especificado
propNameOrNumber in objectName;
- instanceof : El operador instanceof devulve true si el objeto especificado es del tipo de objeto especificado.
objectName instance of objectType
Precedencia de los operadores
la precedencia de los operadores determina el orden en que se aplican al evaluar una expresión. Puedes redefinir la precedencia de los operadores mediante el uso de los paréntesis.
En la siguiente tabla describe la precedencia de los operadores, de mayor a menor
Tipo de operador | Operadores individuales |
---|---|
miembro | . [] |
llamar / crear instancia | () new |
negación / incremento | ! ~ - + ++ -- typeof void delete |
multiplicar / dividir | * / % |
adición / sustracción | + - |
desplazamiento bit a bit | << >> >>> |
relacional | < <= > >= in instanceof |
igualdad | == != === !== |
AND bit a bit | & |
XOR bit a bit | ^ |
OR bit a bit | | |
AND lógico | && |
OR lógico | || |
condicional | ?: |
asignación | = += -= *= /= %= <<= >>= >>>= &= ^= |= &&= ||= ??= |
coma | , |