let and const Keywords Hoisting

Variables defined with let and const are hoisted to the top of the block, but not initialized. Meaning: The block of code is aware of the variable, but it cannot be used until it has been declared.

Using a let variable before it is declared will result in a ReferenceError.

The variable is in a “temporal dead zone” from the start of the block until it is declared:

\\ This will result in a ReferenceError:

carName = "Volvo";
let carName;

Using a const variable before it is declared, is a syntax errror, so the code will simply not run.

carName = "Volvo";
const carName;