Start here. This is the direct spoken answer to practice first.
Overview
The useful comparison is about bindings and scope. const does not freeze an object, and hoisting does not make every declaration safely readable early.
var is function-scoped, can be redeclared, and reads as undefined before its declaration is executed. let and const are block-scoped and cannot be used before initialization; that interval is the temporal dead zone. let can be reassigned, while const cannot. const protects the binding, not the contents of an object stored in it.