What does this symbol mean in JavaScript?

Javascript

Javascript Problem Overview


What is this?

This is a collection of questions that come up every now and then about syntax in JavaScript. This is also a Community Wiki, so everyone is invited to participate in maintaining this list.

Why is this?

Stack Overflow does not allow searching for particular characters. As a consequence, many questions about operators and other syntax tokens are not found easily when searching for them. This also makes closing duplicates more difficult. The list below is to help with this issue.

The main idea is to have links to existing questions on Stack Overflow, so it's easier for us to reference them, not to copy over content from the ECMAScript Spec.

Additionally, this is a blatant copy of the PHP symbol reference. We needed a JS one.


Please help. Edit and add links to other operators/syntax references, or if you can't find good questions/answers on a particular piece of syntax, add an answer to this question and link it

Javascript Solutions


Solution 1 - Javascript

See the documentation on MDN about expressions and operators and statements.

Basic keywords and general expressions

this keyword:
var x = function() vs. function x()  —  Function declaration syntax
(function(){})()  —  IIFE (Immediately Invoked Function Expression)
someFunction()()  —  Functions which return other functions
=>  —  Equal sign, greater than: arrow function expression syntax
|>  —  Pipe, greater than: Pipeline operator
function*, yield, yield*  —  Star after function or yield: generator functions
[], Array()  —  Square brackets: array notation

If the square brackets appear on the left side of an assignment ([a] = ...), or inside a function's parameters, it's a destructuring assignment.

{key: value}  —  Curly brackets: object literal syntax (not to be confused with blocks)

If the curly brackets appear on the left side of an assignment ({ a } = ...) or inside a function's parameters, it's a destructuring assignment.

`${}`  —  Backticks, dollar sign with curly brackets: template literals
//  —  Slashes: regular expression literals
$  —  Dollar sign in regex replace patterns: $$, $&, $`, $', $n
()  —  Parentheses: grouping operator

obj.prop, obj[prop], obj["prop"]  —  Square brackets or dot: property accessors
?., ?.[], ?.()  —  Question mark, dot: optional chaining operator
::  —  Double colon: bind operator
new operator
...iter  —  Three dots: spread syntax; rest parameters

Increment and decrement

++, --  —  Double plus or minus: pre- / post-increment / -decrement operators

Unary and binary (arithmetic, logical, bitwise) operators

delete operator
void operator
+, -  —  Plus and minus: addition or concatenation, and subtraction operators; unary sign operators
|, &, ^, ~  —  Single pipe, ampersand, circumflex, tilde: bitwise OR, AND, XOR, & NOT operators
%  —  Percent sign: remainder operator
&&, ||, !  —  Double ampersand, double pipe, exclamation point: logical operators
??  —  Double question mark: nullish-coalescing operator
**  —  Double star: power operator (exponentiation)

Equality operators

==, ===  —  Equal signs: equality operators
!=, !==  —  Exclamation point and equal signs: inequality operators

Bit shift operators

<<, >>, >>>  —  Two or three angle brackets: bit shift operators

Conditional operator

?:…  —  Question mark and colon: conditional (ternary) operator

Assignment operators

=  —  Equal sign: assignment operator

This symbol is also used for default parameters or default values in a destructuring assignment:

%=  —  Percent equals: remainder assignment
+=  —  Plus equals: addition assignment operator
&&=, ||=, ??=  —  Double ampersand, pipe, or question mark, followed by equal sign: logical assignments
Destructuring

Comma operator

,  —  Comma operator (not to be confused with the comma used in variable declarations)

Control flow

{}  — Curly brackets: blocks (not to be confused with object literal syntax)

Declarations

var, let, const  —  Declaring variables

Label

label:  —  Colon: labels

Other

123n  —  n after integer: BigInt
#  —  Hash (number sign): Private methods or private fields

_  —  Underscore: separator in numeric literals

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionThomas ShieldsView Question on Stackoverflow
Solution 1 - JavascriptThomas ShieldsView Answer on Stackoverflow