let和var声明的变量之间存在几个关键区别:作用域、变量提升、重复声明、与全局对象的关联。具体如下:
1、作用域不同。let声明的变量只在包含它们的代码块内有效,而var声明的变量可以在整个函数或全局作用域内访问。
2、变量提升不同。let不会引起变量提升,即使用let声明变量时,如果变量未在声明前使用,将会抛出错误。而var声明的变量会有变量提升,可以在声明前使用。
3、重复声明不同。let不允许在相同作用域内重复声明同一个变量,而var可以。
4、与全局对象的关联不同。let声明的变量不会成为全局对象的属性,因此无法通过window.variableName的形式访问它们。而var声明的变量会成为全局对象的属性。
下载本文