let、const、var 的区别?
题干
- var
- let、const
题解
在 JS 中,let
、const
、var
是用来声明变量的关键字,它们之间有以下区别:
作用域:
var
声明的变量属于函数作用域或全局作用域,let
、const
声明的变量属于块级作用域(例如if语句、循环语句、函数块等);变量提升:
var
存在变量提升现象,即在声明之前就可以使用,而let
和const
没有此类现象;声明前使用:
var
声明的变量在声明之前可以被使用,其值为 undefined,而let
和const
声明的变量在声明之前无法使用,且const
声明时必须初始化。重复声明:
var
变量可重复声明、可修改,而在同一个块级作用域,let
变量可修改、不可重新声明,const
变量不可修改、不可重新声明;绑定全局对象:
var
在全局环境声明变量,会在全局对象里新建一个属性,而let
、const
在全局环境声明变量,不会在全局对象里新建一个属性。
总的来说,let
、const
相比 var
更加安全,因为它们避免了变量提升和重复声明等问题,并且 const
还可以避免意外修改变量的值。因此,在开发中我们应该尽可能地使用 let
和 const
,而避免使用 var
。