var、let和const的区别

106 阅读1分钟

1、let声明的范围是块作用域,而var声明的范围是函数作用域。 var声明的变量作用域为整个函数,而let声明变量的作用域则只是一个代码块,如在for循环中声明,作用域为for循环内。 2、let也不允许同一个块作用域中出现冗余声明,即在作用域相同的情况下不能重复声明同一个变量名,而var可以。 3、let存在暂执性死区,let声明的变量在作用域中不会提升,在let声明之前的执行瞬间被称为“暂时性死区”。 4、使用let在全局作用域中声明的变量不会成为window对象的属性,var声明的变量则会。 5、const的行为与let基本相同,唯一一个重要的区别是用它声明变量时必须同时初始化变量,且尝试修改const声明的变量会导致运行时错误,即const可以看做是一个常量。