singularity

Hoisting

``var’’ declarations

Function declarations

Function declarations inside blocks

Class declarations

Temporal Dead Zone (TDZ)

var count = 5;
{
  console.log(count); // hoisted but cannot access due to TDZ
  let count = 10;
}

Function and class expressions