Я играл с 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
в этом вопросе?