var, let, const
这三个东西, 经常会被问到。
汇总一下,基本上就是:
var, let, const
有什么区别
?- let, const 有没有
变量提升
(hosting) ? - 什么是
TDZ
?
首先, 我们先整体的看下区别
:
针对这几点, 我们一个个看。
首先, 我们还是先了解一下变量提升
.
看个例子:
console.log(a) // undefined
var a = 1
这里我们可以看到, 第一行中的a虽然还没声明, 但是我们用起来却不会报错。 这种情况, 就是声明的提升。
其实也就是:
var a
console.log(a) // undefined
a = 1
但是, 如果是换成let
, 情况就不一样了: