fications 
  * Browser compatibility 
  * See also 

#  Expressions and operators

This chapter documents all the JavaScript language operators, expressions and
keywords.

##  Expressions and operators by category

For an alphabetical listing see the sidebar on the left.

###  Primary expressions

Basic keywords and general expressions in JavaScript. These expressions have
the highest precedence (higher than [ operators ](/en-
US/docs/Web/JavaScript/Reference/Operators/Operator_precedence) ).

[ ` this ` ](/en-US/docs/Web/JavaScript/Reference/Operators/this)

    

The ` this ` keyword refers to a special property of an execution context.

[ Literals ](/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#literals)

    

Basic ` null ` , boolean, number, and string literals.

[ ` [] ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)

    

Array initializer/literal syntax.

[ ` {} ` ](/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer)

    

Object initializer/literal syntax.

[ ` function ` ](/en-US/docs/Web/JavaScript/Reference/Operators/function)

    

The ` function ` keyword defines a function expression.

[ ` class ` ](/en-US/docs/Web/JavaScript/Reference/Operators/class)

    

The ` class ` keyword defines a class expression.

[ ` function* ` ](/en-US/docs/Web/JavaScript/Reference/Operators/function*)

    

The ` function* ` keyword defines a generator function expression.

[ ` async function ` ](/en-
US/docs/Web/JavaScript/Reference/Operators/async_function)

    

The ` async function ` defines an async function expression.

[ ` async function* ` ](/en-
US/docs/Web/JavaScript/Reference/Operators/async_function*)

    

The ` async function* ` keywords define an async generator function
expression.

[ ` /ab+c/i ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp)

    

Regular expression literal syntax.

[ ` `string` ` ](/en-US/docs/Web/JavaScript/Reference/Template_literals)

    

Template literal syntax.

[ ` ( ) ` ](/en-US/docs/Web/JavaScript/Reference/Operators/Grouping)

    

Grouping operator.

###  Left-hand-side expressions

Left values are the destination of an assignment.

[ Property accessors ](/en-
US/docs/Web/JavaScript/Reference/Operators/Property_accessors)

    

Member operators provide access to a property or method of an object ( `
object.property ` and ` object["property"] ` ).

[ ` ?. ` ](/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining)

    

The optional chaining operator returns ` undefined ` instead of causing an
error if a reference is [ nullish ](/en-US/docs/Glossary/Nullish) ( [ ` null `
](/en-US/docs/Web/JavaScript/Reference/Operators/null) or [ ` undefined `
](/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined) ).

[ ` new ` ](/en-US/docs/Web/JavaScript/Reference/Operators/new)

    

The ` new ` operator creates an instance of a constructor.

[ ` new.target ` ](/en-US/docs/Web/JavaScript/Reference/Operators/new.target)

    

In constructors, ` new.target ` refers to the constructor that was invoked by
[ ` new ` ](/en-US/docs/Web/JavaScript/Reference/Operators/new) .

[ ` import.meta ` ](/en-
US/docs/Web/JavaScript/Reference/Operators/import.meta)

    

An object exposing context-specific metadata to a JavaScript module.

[ ` super ` ](/en-US/docs/Web/JavaScript/Reference/Operators/super)

    

The ` super ` keyword calls the parent constructor or allows accessing
properties of the parent object.

[ ` import() ` ](/en-US/docs/Web/JavaScript/Reference/Operators/import)

    

The ` import() ` syntax allows loading a module asynchronously and dynamically
into a potentially non-module environment.

###  Increment and decrement

Postfix/prefix increment and postfix/prefix decrement operators.

[ ` A++ ` ](/en-US/docs/Web/JavaScript/Reference/Operators/Increment)

    

Postfix increment operator.

[ ` A-- ` ](/en-US/docs/Web/JavaScript/Reference/Operators/Decrement)

    

Postfix decrement operator.

[ ` ++A ` ](/en-U