Expresiones y operadores

Este capítulo documenta todos los operadores, expresiones y palabras clave del lenguaje JavaScript.

Expresiones y operadores por categoría

Para obtener una lista alfabética, consulta la barra lateral de la izquierda.

Expresiones primarias

Palabras clave básicas y expresiones generales en JavaScript.

this
La palabra clave this se refiere a una propiedad especial de un contexto de ejecución.
function
La palabra clave function define una expresión de función.
class
La palabra clave class define una expresión de clase.
function
La palabra clave function* define una expresión de función generadora.
yield
Pausar y reanudar una función generadora.
yield*
Delegar a otra función generadora u objeto iterable.
async function
La async function define una expresión de función asíncrona.
await
Pausa y reanuda una función asíncrona y espera la resolución/rechazo de la promesa.
[]
Iniciador de arreglo/sintaxis literal.
{} (en-US)
Iniciador de objeto/sintaxis literal.
/ab+c/i
Sintaxis de expresión regular literal.
( )
Operador de agrupación.

Expresiones del lado izquierdo

Los valores de la izquierda son el destino de una asignación.

Propiedad accessors
Los operadores miembro proporcionan acceso a una propiedad o método de un objeto
(object.property y object["property"]).
new
El operador new crea una instancia auxiliado por un constructor.
new.target
En los constructores, new.target se refiere al constructor que fue invocado por new.
super
La palabra clave super llama al constructor padre.
...obj
La sintaxis de extensión permite expandir una expresión en lugares donde se esperan múltiples argumentos (para llamadas a funciones) o múltiples elementos (para arreglos literales).

Incremento y decremento

Operadores de incremento sufijo/prefijo y decremento sufijo/prefijo.

A++ (en-US)
Operador de incremento sufijo.
A--
Operador de incremento sufijo.
A++ (en-US)
Operador de incremento prefijo.
--A
Operador de decremento prefijo.

Operadores unarios

Una operación unaria es una operación con un solo operando.

delete
El operador delete elimina una propiedad de un objeto.
void
El operador void descarta el valor de retorno de una expresión.
typeof
El operador typeof determina el tipo de un objeto dado.
+ (en-US)
El operador unario más convierte su operando al tipo Number.
- (en-US)
El operador unario de negación convierte su operando al tipo Number y luego lo niega.
~ (en-US)
Operador NOT bit a bit.
! (en-US)
Operador NOT lógico.

Operadores aritméticos

Los operadores aritméticos toman valores numéricos (ya sean literales o variables) como sus operandos y devuelven un solo valor numérico.

+
Operador de adición o suma.
-
Operador de sustracción o resta.
/
Operador de división.
* (en-US)
Operador de multiplicación.
%
Operador de residuo.
** (en-US)
Operador de exponenciación.

Operadores relacionales

Un operador de comparación compara sus operandos y devuelve un valor Boolean basado en si la comparación es verdadera o no.

in
El operador in determina si un objeto tiene una determinada propiedad.
instanceof
El operador instanceof determina si un objeto es una instancia de otro objeto.
< (en-US)
Operador menor que.
> (en-US)
Operador mayor que.
<= (en-US)
Operador menor o igual a.
>= (en-US)
Operador mayor o igual a.

Nota: => no es un operador, sino la notación para Funciones de flecha.

Operadores de igualdad

El resultado de evaluar un operador de igualdad siempre es de tipo Boolean basado en si la comparación es verdadera.

==
Operador de igualdad.
!= (en-US)
Operador de desigualdad.
===
Operador de igualdad estricta.
!== (en-US)
Operador de desigualdad estricta.

Operadores de desplazamiento de bits

Operaciones para cambiar todos los bits del operando.

<< (en-US)
Operador de desplazamiento bit a bit a la izquierda.
>> (en-US)
Operador de desplazamiento bit a bit a la derecha.
>>> (en-US)
Operador de desplazamiento bit a bit a la derecha sin signo.

Operadores binarios bit a bit

Los operadores bit a bit tratan a sus operandos como un conjunto de 32 bits (ceros y unos) y devuelven valores numéricos estándar de JavaScript.

& (en-US)
AND bit a bit.
| (en-US)
OR bit a bit.
^ (en-US)
XOR bit a bit.

Operadores lógicos binarios

Los operadores lógicos se utilizan normalmente con valores booleanos (lógicos); cuando lo son, devuelven un valor booleano.

&& (en-US)
AND lógico.
|| (en-US)
OR lógico.

Operador condicional (ternario)

(condition ? ifTrue : ifFalse)

El operador condicional devuelve uno de dos valores según el valor lógico de la condición.

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.

=
Operador de asignación.
*= (en-US)
Asignación de multiplicación.
/= (en-US)
Asignación de división.
%= (en-US)
Asignación de residuo.
+= (en-US)
Asignación de suma.
-= (en-US)
Asignación de sustracción
<<= (en-US)
Asignación de desplazamiento a la izquierda.
>>= (en-US)
Asignación de desplazamiento a la derecha.
>>>= (en-US)
Asignación de desplazamiento a la derecha sin signo.
&= (en-US)
Asignación de AND bit a bit.
^= (en-US)
Asignación de XOR bit a bit.
|= (en-US)
Asignación de OR bit a bit.
&&= (en-US)
Asignación de AND lógico.
||= (en-US)
Asignación de OR lógico.
??= (en-US)
Asignación de anulación lógica.
[a, b] = [1, 2]
{a, b} = {a:1, b:2}

La desestructuración te permite asignar las propiedades de un arreglo u objeto a variables utilizando una sintaxis que se parece a los arreglos u objetos literales.

Operador coma

,
El operador coma permite evaluar múltiples expresiones en una sola declaración y devuelve el resultado de la última expresión.

Especificaciones

Especificación
ECMAScript (ECMA-262)
La definición de 'ECMAScript Language: Expressions' en esta especificación.

Compatibilidad del navegador

BCD tables only load in the browser

Ve también