var缺陷以及为什么要引入let和const

28 阅读1分钟

作用域

作用域就是变量和函数的可访问范围,即作用域控制着变量和函数的可见性和生命周期

全局作用域:在全局范围内都可以访问到该变量

函数作用域:在函数内部可以访问到该变量

块级作用域:使用一对大括号包裹的一段代码,比如函数、判断语句、循环语句,甚至单独的一个{}都可以被看作是一个块级作用域。

变量提升所带来的问题

变量容易在不被察觉的情况下覆盖掉

function showName(){
  console.log(myname);
  if(0){
   var myname = "极客邦"
  }
  console.log(myname);
}
showName()

本应销毁的变量没有销毁

  for (var i = 0; i < 7; i++) {
  }
  console.log(i); 
}
foo()

es6如何解决变量提升所带来的问题

通过引入let和const,这样就拥有了块级作用域。

此文章为10月Day012学习笔记,内容来源于极客时间《浏览器的原理与实践》,强烈推荐该课程