See the documentation on MDN about expressions and operators and statements.
Basic keywords and general expressions
this keyword:
- How does the “this” keyword work, and when should it be used?
var x = function() vs. function x() — Function declaration syntax
- var functionName = function() {} vs function functionName() {}
(function(){…})() — IIFE (Immediately Invoked Function Expression)
- What is the purpose?, How is it called?
- Why does
(function(){…})();work butfunction(){…}();doesn’t? (function(){…})();vs(function(){…}());- shorter alternatives:
!function(){…}();– What does the exclamation mark do before the function?+function(){…}();– JavaScript plus sign in front of function expression- !function(){ }() vs (function(){ })(),
!vs leading semicolon
(function(window, undefined){…}(window));
someFunction()() — Functions which return other functions
- Two sets of parentheses after function call
=> — Equal sign, greater than: arrow function expression syntax
- What’s the meaning of “=>” (an arrow formed from equals & greater than) in JavaScript?
|> — Pipe, greater than: Pipeline operator
- What does the “|>” operator do in JavaScript?
function*, yield, yield* — Star after function or yield: generator functions
- What is “function*” in JavaScript?
- What’s the yield keyword in JavaScript?
- Delegated yield (yield star, yield *) in generator functions
[…], [ value ], Array() — Square brackets: array notation
- What’s the difference between “Array()” and “[]” while declaring a JavaScript array?
- What is array literal notation in javascript and when should you use it?
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 }, { [key]: value } — Curly brackets: object literal syntax (not to be confused with blocks)
- What do curly braces in JavaScript mean?
- Javascript object literal: what exactly is {a, b, c}?
- What do square brackets around a property name in an object literal mean?
- How does this object method definition work without the “function” keyword? (ES2015 Method definitions)
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
- What does this
`…${…}…`code from the node docs mean? - Usage of the backtick character (`) in JavaScript?
- What is the purpose of template literals (backticks) following a function in ES6?
/…/ — Slashes: regular expression literals
- Meaning of javascript text between two slashes
$ — Dollar sign in regex replace patterns: $$, $&, $`, $', $n
- JavaScript replace() method dollar signs
() — Parentheses: grouping operator
- MDN: Grouping operator
Property-related expressions
obj.prop, obj[prop], obj["prop"] — Square brackets or dot: property accessors
- JavaScript property access: dot notation vs. brackets?
?., ?.[], ?.() — Question mark, dot: optional chaining operator
- Question mark after parameter
- Null-safe property access (and conditional assignment) in ES6/2015
- Optional Chaining in JavaScript
- Is there a null-coalescing (Elvis) operator or safe navigation operator in javascript?
- Is there a “null coalescing” operator in JavaScript?
:: — Double colon: bind operator
- JavaScript double colon (bind operator)
new operator
- What is the ‘new’ keyword in JavaScript?
- What is “new.target”?
...iter — Three dots: spread syntax; rest parameters
(...rest) => {}— What is the meaning of “…args” (three dots) in a function definition?fn(...args)— What is the meaning of “foo(…arg)” (three dots in a function call)?[...iter]— javascript es6 array feature […data, 0] “spread operator”{...props}— Javascript Property with three dots (…), What does the ‘…rest’ stand for in this object destructuring?
Increment and decrement
++, -- — Double plus or minus: pre- / post-increment / -decrement operators
++someVariablevssomeVariable++in Javascript
Unary and binary (arithmetic, logical, bitwise) operators
delete operator
- What is the purpose of the delete operator in Javascript?
void operator
- What does `void 0` mean?
+, - — Plus and minus: addition or concatenation, and subtraction operators; unary sign operators
- What does = +_ mean in JavaScript, Single plus operator in javascript
- What’s the significant use of unary plus and minus operators?
- Why is [1,2] + [3,4] = “1,23,4” in JavaScript?
- Why does JavaScript handle the plus and minus operators between strings and numbers differently?
|, &, ^, ~ — Single pipe, ampersand, circumflex, tilde: bitwise OR, AND, XOR, & NOT operators
- What do these JavaScript bitwise operators do?
- How to: The ~ operator?
- Is there a & logical operator in Javascript
- What does the “|” (single pipe) do in JavaScript?
- What does the operator |= do in JavaScript?
- What does the ^ (caret) symbol do in JavaScript?
- Using bitwise OR 0 to floor a number, How does x|0 floor the number in JavaScript?
- Why does
~1equal-2? - What does ~~ (“double tilde”) do in Javascript?
- How does !!~ (not not tilde/bang bang tilde) alter the result of a ‘contains/included’ Array method call? (also here and here)
% — Percent sign: remainder operator
- What does % do in JavaScript?
&&, ||, ! — Double ampersand, double pipe, exclamation point: logical operators
- Logical operators in JavaScript — how do you use them?
- Logical operator || in javascript, 0 stands for Boolean false?
- What does “var FOO = FOO || {}” (assign a variable or an empty object to that variable) mean in Javascript?, JavaScript OR (||) variable assignment explanation, What does the construct x = x || y mean?
- Javascript AND operator within assignment
- What is “x && foo()”? (also here and here)
- What is the !! (not not) operator in JavaScript?
- What is an exclamation point in JavaScript?
?? — Double question mark: nullish-coalescing operator
- How is the nullish coalescing operator (??) different from the logical OR operator (||) in ECMAScript?
- Is there a null-coalescing (Elvis) operator or safe navigation operator in javascript?
- Is there a “null coalescing” operator in JavaScript?
** — Double star: power operator (exponentiation)
x ** 2is equivalent toMath.pow(x, 2)- Is the double asterisk ** a valid JavaScript operator?
- MDN documentation
Equality operators
==, === — Equal signs: equality operators
- Which equals operator (== vs ===) should be used in JavaScript comparisons?
- How does JS type coercion work?
- In Javascript, <int-value> == “<int-value>” evaluates to true. Why is it so?
- [] == ![] evaluates to true
- Why does “undefined equals false” return false?
- Why does !new Boolean(false) equals false in JavaScript?
- Javascript 0 == ‘0’. Explain this example
- Why false == “false” is false?
!=, !== — Exclamation point and equal signs: inequality operators
- != vs. !==
- What is the difference between != and !== operators in JavaScript?
Bit shift operators
<<, >>, >>> — Two or three angle brackets: bit shift operators
- What do these JavaScript bitwise operators do?
- Double more-than symbol in JavaScript
- What is the JavaScript >>> operator and how do you use it?
Conditional operator
…?…:… — Question mark and colon: conditional (ternary) operator
- Question mark and colon in JavaScript
- Operator precedence with JavaScript’s ternary operator
- How do you use the ? : (conditional) operator in JavaScript?
Assignment operators
= — Equal sign: assignment operator
- What is the difference between the `=` and `==` operators and what is `===`? (Single, double, and triple equals)
This symbol is also used for default parameters or default values in a destructuring assignment:
- what does (state = {}) => state means
- What does ({“key”: “value”} = {}) syntax mean inside a JavaScript function
%= — Percent equals: remainder assignment
- Having Confusion with Modulo operator
+= — Plus equals: addition assignment operator
- How does += (plus equal) work?
&&=, ||=, ??= — Double ampersand, pipe, or question mark, followed by equal sign: logical assignments
- What purpose do &&=, ||= and ??= serve?
- Replace a value if null or undefined in JavaScript
- Set a variable if undefined
- Ruby’s
||=(or equals) in JavaScript? - Original proposal
- Specification
<<=, >>=, >>>=, &=, ^=, |= — Double less than, double greater than, triple greater than, ampersand, caret, or pipe followed by equal sign: bitwise assignments
- What do these JavaScript bitwise operators do?
Destructuring
- of function parameters: Where can I get info on the object parameter syntax for JavaScript functions?
- of arrays: Multiple assignment in JavaScript? What does `[ a, b, c ] = [ 1, 2, 3 ]` mean?
- of objects/imports: Javascript object bracket notation ({ Navigation } =) on left side of assign
Comma operator
, — Comma operator (not to be confused with the comma used in variable declarations)
- What does the comma operator do in JavaScript?
- Comma operator returns first value instead of second in argument list?
- When is the comma operator useful?
Control flow
{…} — Curly brackets: blocks (not to be confused with object literal syntax)
- JavaScript curly braces with no function or json
Declarations
var, let, const — Declaring variables
- What is the difference between “let” and “var”?
- Are there constants in JavaScript?
- What is the temporal dead zone?
var a, b;— Comma used in variable declarations (not to be confused with the comma operator): JavaScript variable definition: Commas vs. Semicolons
Label
label: — Colon: labels
- What does the JavaScript syntax foo: mean?
- What does ‘:’ (colon) do in JavaScript?
Other
123n — n after integer: BigInt
- What does character ‘n’ after numeric literal mean in JavaScript?
# — Hash (number sign): Private methods or private fields
- What does the
#symbol do in JavaScript?
_ — Underscore: separator in numeric literals
- Javascript numeric separators?
- Is there a Javascript equivalent to the Ruby syntax using underscores (e.g. 10_000 = 10000) to make larger integers human readable?