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.

{}

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++

Operador de incremento sufijo.

A--

Operador de decremento sufijo.

++A

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.

+

El operador unario más convierte su operando al tipo Number.

-

El operador unario de negación convierte su operando al tipo Number y luego lo niega.

~

Operador NOT bit a bit.

!

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.

*

Operador de multiplicación.

%

Operador de residuo.

**

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.

<

Operador menor que.

>

Operador mayor que.

<=

Operador menor o igual a.

>=

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.

!=

Operador de desigualdad.

===

Operador de igualdad estricta.

!==

Operador de desigualdad estricta.

Operadores de desplazamiento de bits

Operaciones para cambiar todos los bits del operando.

<<

Operador de desplazamiento bit a bit a la izquierda.

>>

Operador de desplazamiento bit a bit a la derecha.

>>>

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.

&

AND bit a bit.

|

OR bit a bit.

^

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.

&&

AND lógico.

||

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.

*=

Asignación de multiplicación.

/=

Asignación de división.

%=

Asignación de residuo.

+=

Asignación de suma.

-=

Asignación de sustracción

<<=

Asignación de desplazamiento a la izquierda.

>>=

Asignación de desplazamiento a la derecha.

>>>=

Asignación de desplazamiento a la derecha sin signo.

&=

Asignación de AND bit a bit.

^=

Asignación de XOR bit a bit.

|=

Asignación de OR bit a bit.

&&=

Asignación de AND lógico.

||=

Asignación de OR lógico.

??=

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

Specification
ECMAScript Language Specification
# sec-assignment-operators
ECMAScript Language Specification
# sec-relational-operators
ECMAScript Language Specification
# prod-SpreadElement
ECMAScript Language Specification
# prod-ArgumentList
ECMAScript Language Specification
# prod-PropertyDefinition
ECMAScript Language Specification
# sec-multiplicative-operators
ECMAScript Language Specification
# sec-async-function-definitions
ECMAScript Language Specification
# sec-logical-not-operator
ECMAScript Language Specification
# sec-unary-minus-operator
ECMAScript Language Specification
# sec-this-keyword
ECMAScript Language Specification
# prod-BitwiseXORExpression
ECMAScript Language Specification
# sec-import-calls
ECMAScript Language Specification
# sec-exp-operator
ECMAScript Language Specification
# prod-OptionalExpression
ECMAScript Language Specification
# sec-addition-operator-plus
ECMAScript Language Specification
# prod-LogicalANDExpression
ECMAScript Language Specification
# sec-comma-operator
ECMAScript Language Specification
# sec-equality-operators
ECMAScript Language Specification
# sec-built-in-function-objects
ECMAScript Language Specification
# prod-ImportMeta
ECMAScript Language Specification
# prod-CoalesceExpression
ECMAScript Language Specification
# sec-async-generator-function-definitions
ECMAScript Language Specification
# prod-BitwiseANDExpression
ECMAScript Language Specification
# sec-property-accessors
ECMAScript Language Specification
# sec-void-operator
ECMAScript Language Specification
# prod-YieldExpression
ECMAScript Language Specification
# sec-generator-function-definitions
ECMAScript Language Specification
# sec-object-initializer
ECMAScript Language Specification
# sec-unsigned-right-shift-operator
ECMAScript Language Specification
# sec-signed-right-shift-operator
ECMAScript Language Specification
# sec-function-definitions
ECMAScript Language Specification
# sec-super-keyword
ECMAScript Language Specification
# sec-bitwise-not-operator
ECMAScript Language Specification
# sec-unary-plus-operator
ECMAScript Language Specification
# sec-conditional-operator
ECMAScript Language Specification
# sec-generator-function-definitions-runtime-semantics-evaluation
ECMAScript Language Specification
# sec-subtraction-operator-minus
ECMAScript Language Specification
# sec-left-shift-operator
ECMAScript Language Specification
# prod-LogicalORExpression
ECMAScript Language Specification
# prod-BitwiseORExpression
ECMAScript Language Specification
# sec-class-definitions
ECMAScript Language Specification
# sec-typeof-operator
ECMAScript Language Specification
# sec-delete-operator
ECMAScript Language Specification
# sec-grouping-operator
HTML Standard
# import-meta-resolve
ECMAScript Language Specification
# sec-new-operator
ECMAScript Language Specification
# sec-null-value
ECMAScript Language Specification
# sec-destructuring-assignment
ECMAScript Language Specification
# sec-destructuring-binding-patterns
ECMAScript Language Specification
# sec-postfix-increment-operator
ECMAScript Language Specification
# sec-postfix-decrement-operator

Compatibilidad con navegadores

BCD tables only load in the browser

Ve también