let / const are both hoisted though, they're just hoisted to the top of the current block scope instead of function scope.
"In ECMAScript 2015, let bindings are not subject to Variable Hoisting, which means that let declarations do not move to the top of the current execution context."
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...