【js】var、let、const

重复定义修改值声明提升块级作用域循环
var可以可以严格来说不支持(function可以)可以
let不可以可以不会支持可以
const不可以不可以(对象和数组除外)不会支持不可以(for of和for in循环除外)
  • 同一作用域中不能使用let/const重复定义已经存在的标识符。在声明const常量的时候必须进行初始化。
  • js中的const常量如果是对象/数组,则对象/数组中的属性值可以修改,但不允许修改绑定。因为const存放的是对象/数组的引用地址。
  • 由于let/const声明不会被提升,所以一般将let/const声明放在封闭代码块的顶部,以便整个代码块都可以访问。
  • var声明的循环中,每一次迭代都同时共享这个该变量,循环内部创建的函数全部保留了对相同变量的引用(常考:闭包,使用立即执行函数或者let来解决)。
  • let声明的循环中,每一次迭代都会创建一个新变量,并以之前迭代中同名变量的值将其初始化。对forfor infor of循环都是一样的表现。
  • const声明的循环:对于普通的for循环而言,可以在初始化变量时使用const,但要更改这个变量的值就会抛出错误,使用如果后续循环不会修改该变量,则可以使用const声明;在for in或者for of循环中,每一次迭代都会创建一个新绑定,与let一样可以正常使用,但唯一的区别是,循环内不能修改key的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值