0
点赞
收藏
分享

微信扫一扫

var let const 的特点与区别

月半小夜曲_ 2022-05-06 阅读 60

如果使用关键字 var 声明一个变量,那么这个变量就属于当前的函数作用域,如果声明是发生在任何函数外的顶层声明,那么这个变量就属于全局作用域。

如果在声明变量时,省略 var 的话,该变量就会变成全局变量,如全局作用域中存在该变量,就会更新其值。

注意:var 声明的变量存在提升(hoisting)。

let 声明的变量,具有如下几个特点:

let 声明的变量具有块作用域的特征。

在同一个块级作用域,不能重复声明变量。

let 声明的变量不存在变量提升,换一种说法,就是 let 声明存在暂时性死区(TDZ)。

const 声明方式,除了具有 let 的上述特点外,其还具备一个特点,即 const 定义的变量,一旦定义后,就不能修改,即 const 声明的为常量。

但是,并不是说 const 声明的变量其内部内容不可变,所以准确的说,是 const 声明创建一个值的只读引用。但这并不意味着它所持有的值是不可变的,只是变量标识符不能重新分配。

总结

var 声明的变量属于函数作用域,let 和 const 声明的变量属于块级作用域;

var 存在变量提升现象,而 let 和 const 没有此类现象;

var 变量可以重复声明,而在同一个块级作用域,let 变量不能重新声明,const 变量不能修改。

举报

相关推荐

0 条评论