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

Compatibilidad con navegadores

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
Addition (+)
Addition assignment (x += y)
Assignment (x = y)
async function expression
async function* expression
await
Use at module top level
Bitwise AND (a & b)
Bitwise AND assignment (x &= y)
Bitwise NOT (~a)
Bitwise OR (a | b)
Bitwise OR assignment (x |= y)
Bitwise XOR (a ^ b)
Bitwise XOR assignment (x ^= y)
class
Comma operator
Conditional operator (c ? t : f)
Decrement (--)
delete
Destructuring assignment
Computed property names
Rest in arrays
Rest in objects
Division (/)
Division assignment (x /= y)
Equality (a == b)
Exponentiation (**)
Exponentiation assignment (x **= y)
function expression
Trailing comma in parameters
function* expression
Trailing comma in parameters
Greater than (a > b)
Greater than or equal (a >= b)
Grouping operator ()
import
The options parameter
Non-standard
Available in workers
import.meta
import.meta.resolve
in
Increment (++)
Inequality (a != b)
instanceof
Bitwise left shift (a << b)
Left shift assignment (x <<= y)
Less than (a < b)
Less than or equal (a <= b)
Logical AND (&&)
Logical AND assignment (x &&= y)
Logical NOT (!)
Logical OR (||)
Logical OR assignment (x ||= y)
Multiplication (*)
Multiplication assignment (x *= y)
new
new.target
null
Nullish coalescing operator (??)
Nullish coalescing assignment (x ??= y)
Object initializer
Computed property names
Shorthand method names
Shorthand property names
Spread properties
Optional chaining operator (?.)
Property accessors
Remainder (%)
Remainder assignment (x %= y)
Bitwise right shift (a >> b)
Right shift assignment (x >>= y)
Spread syntax (...)
Spread in array literals
Spread in function calls
Spread in object literals
Strict equality (a === b)
Strict inequality (a !== b)
Subtraction (-)
Subtraction assignment (x -= y)
super
this
typeof
Unary negation (-)
Unary plus (+)
Bitwise unsigned right shift (a >>> b)
Unsigned right shift assignment (x >>>= y)
void
yield
yield*

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
No support
No support
Non-standard. Check cross-browser support before using.
See implementation notes.
Has more compatibility info.

Ve también