我使用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
之间有什么区别吗?