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)
- 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
=>
— Equal sign, greater than: arrow function expression syntax
|>
— Pipe, greater than: Pipeline operator
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
[]
, 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}
— 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?
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
$
— Dollar sign in regex replace patterns: $$
, $&
, $`
, $'
, $n
()
— Parentheses: grouping operator
Property-related expressions
obj.prop
, obj[prop]
, obj["prop"]
— Square brackets or dot: property accessors
?.
, ?.[]
, ?.()
— 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
new
operator
...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
Unary and binary (arithmetic, logical, bitwise) operators
delete
operator
void
operator
+
, -
— 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
~1
equal-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
&&
, ||
, !
— 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 ** 2
is 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
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 Ternary operator
- How do you use the ? : (conditional) operator in JavaScript?
Assignment operators
=
— Equal sign: assignment operator
%=
— Percent equals: remainder assignment
+=
— Plus equals: addition assignment operator
&&=
, ||=
, ??=
— 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
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 a comma do in JavaScript expressions?
- 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)
Declarations
var
, let
, const
— Declaring variables
- What’s the difference between using “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