2024-08-15
JS tree map
Variables
let
const
var
types
String
Boolean
Number
Null
Undefined
BigInt
Symbol
Object
Syntax
Conditionals
if
if...else
if..else..if
switch...case
Ternary operator: ?:
Nullish coalescing operator '??'
Loops
for(start; condition; iteration)
for..of
for..in
while
do...while
Errors
try..catch..finally
throw
Functions
function
arguments
Default arguments
return
Arrow functions: () => {}
Rest params: sum(...args)
Spread syntax: Math.max(...numbers)
Closures
Currying
Recursion
Generators
function*
yield
Symbol.iterator
Objects
{}
this
{ property: "..." }
{ method() { ... } }
obj.property
obj?.with?.optional?.chaining
new
Object.keys()
Object.values()
Object.entries()
Object.fromEntries()
Numbers
123
0xff
0b111111
1_000
isNaN()
NaN
isFinite()
parseInt()
parseFloat()
Math
Math.floor()
Math.ceil()
Math.round()
Math.trunc()
12.12.toFixed(1)
Math.max()
Math.min()
Math.random()
Math.pow()
Strings
'string''
"string"
`string ${name}`
name.length
name[0]
name.at(0)
name.toUpperCase()
name.toLowerCase()
name.indexOf()
name.includes()
name.startsWith()
name.endsWith()
name.slice()
name.substring()
name.trim()
name.repeat()
name.split()
Arrays
names.length
names[0]
names.at(-1)
names.push()
names.pop()
names.unshift()
names.shift()
names.forEach()
names.map()
names.filter()
names.reduce()
names.slice()
names.concat()
names.indexOf()
names.lastIndexOf()
names.includes()
names.find()
names.findIndex()
names.findLastIndex()
names.findLastIndex()
names.join()
names.sort() [in place]
names.reverse() [in place]
names.splice() [in place]
Map
names.size
names.set()
names.get()
names.has()
names.delete()
names.clear()
Set
Unique items
names.size
names.add()
names.delete()
names.has()
names.clear()
Prototypes
__proto__
prototype
new
Classes
class
constructor()
super()
#private
extends
get
set
static
new
Modules
import
export
Asynchronous
callback
Promise
Promise.resolve()
Promise.reject()
Promise.then()
Promise.catch()
Promise.finally()
Promise.all()
Promise.allSettled()
Promise.race()
Promise.any()
async/await
setTimeout
clearTimeout
setInterval
clearInterval
JSON
JSON.stringify()
JSON.parse()
Debugging
console
console.log()
console.dir()
console.time()
console.timeEnd()
console.table()
console.clear()
console.count()
debugger;
Developer console F12
node --inspect
Code quality
Building
Minification
Coding style
Polyfills
Transpilers
Unit tests
E2E tests
ECMA
ES2015 Or ES6
const
let
() => {}
classes
{ a, b }
{ method() { ... } }
`Hello ${name}`
const { firstName } = { firstName: "Marcin" };
const [ firstName ] = ["Marcin"];
function showMessage(message = "Hello") { ... }
function sum(...args) { ... }
Math.max(...[1, 2, 3, 4]);
for...of
function*
import/export
Set
WeakSet
Map
WeakMap
Unicode
Symbol
Proxy
Promises
Reflect
Binary/Octal
Array.find()
Array.findIndex()
ES2016 Or ES7
Array.includes()
x ** 3
ES2017 Or ES8
async/await
Object.values()
Object.entries()
Object.getOwnPropertyDescriptors()
String.padStart()
String.padEnd()
Trailing commas
ES2018 Or ES9
Async iterator
function add(a, b, ...rest) { ... }
function add({ a, ...rest }) { ... }
Promise.finally()
ES2019 Or ES10
Array.flat()
Array.flatMap()
Object.fromEntries()
String.trimStart()
String.trimEnd()
try { ... } catch { ... }
#privateProperties
ES2020 Or ES11
BigInt
Dynamic import
a ?? b
String.matchAll()
optional?.chaining
Promise.allSettled()
globalThis
import.meta
for...in order
ES2021 Or ES12
String.replaceAll()
Promise.any()
WeakRef()
1_000_000
x &&= y
ES2022 Or ES13
Top level await
#private
Array.at()
error.cause
Object.hasOwn()