1、理解let&const暂时性死区

276 阅读1分钟

我们来看一个例子

let cc = "coderPan";
function hd() {
  console.log(cc);
}
hd();
  • 上面这段代码,我们在控制台可以打印出coderPan
let cc = "coderPan";
function hd() {
  console.log(cc);
  let cc = "coderPan123";
}
hd();

  • 上面这段代码,我们运行就会报错,这时候就产生了暂时性死区。我们必须是先声明,再使用。
let cc = "coderPan";
function hd() {
  let cc = "coderPan123";
  console.log(cc);      
}
hd();
  • 这样后台就会打印出,coderPan123
  • 这里还涉及到作用域链的问题,当我们打印cc的时候,先会在hd()函数作用域里面找cc。如果找不到,就会向上一次去寻找,直到找到全局作用域,还没有找到,就宣布找不到。

临时性死区这个概念,可以对应到js中变量提升的概念。

变量提升其实是js的一个小毛病。在ES6中纠正了。所以,我强烈建议大家在今后不要使用var,就用const和let。

  • 这个小知识点就分享到这里,如有错误,请多多留言指正。