-
var 有变量声明提升
-
let 声明的变量可以改变 不允许重复声明
比如for循环的let i=0;i<10;i++ -
const 定义变量的时候一般要赋值,定义之后这个常量不可以被重新定义,赋值。但是可以在自身基础上改变,比如数组的增删改,因为本身指向的地址没有改变。
简单数据类型(数值,字符串,布尔值):值保存在变量指向的那个内存地址,因此等同于常量。复合类型的数据(对象和数组):变量指向的是内存地址,保存的是一个指针,const只能保存这个指针地址是固定的,至于他指向的数据结构是不是可变的,就完全不能控制了。
-
还有有一个比较重要的就是作用域问题,var有全局作用域和函数作用域概念,没有块级作用域的概念
let const 只有块级作用域内可以使用, -
let暂时性死区
ES6明确规定,如果区块中存在let命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。所以在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区” -
最后:什么时候用 var、let 或 const 呢?个人建议是,大多数情况下都使用 const,除非知道变量的值还会被改变。以上大概是总结后的内容,看来,还是多用 let 、const 吧。
var let const
最新推荐文章于 2022-03-22 22:57:20 发布