Переменные, объявленные с помощью let или const, не отображаются в ES6?

Я некоторое время играл с ES6 и заметил, что переменные объявлены сvar подняты как положено ...

console.log(typeof name); // undefined
var name = "John";

... переменные объявлены сlet или жеconst похоже, есть некоторые проблемы с подъемом:

console.log(typeof name); // ReferenceError
let name = "John";

а также

console.log(typeof name); // ReferenceError
const name = "John";

Означает ли это, что переменные объявлены сlet или жеconst не подняты? Что на самом деле здесь происходит? Есть ли разница междуlet а такжеconst в этом вопросе?

Ответы на вопрос(3)

Ваш ответ на вопрос