var、let、const的区别

1.var、let、const的区别

写在前面:var是ES5语法,let和const是ES6的语法

1.作用域不同

var声明变量时,只有函数作用域和全局作用域,没有块级作用域。
let和const声明变量时,有块级作用域,只能在同一个大括号内部使用,只在块级作用域有效。

2.变量提升

var****有变量提升,变量提升,只提升变量的声明定义,并不能提升赋值。
let和const****没有变量提升:只能在变量声明后才可以用这个变量。声明前都是此变量的“死区”

3.变量的重复声明

var允许重复声明变量,重复赋值时,后面的值会覆盖前面的值。
let和const都不允许重复声明变量。
const声明常量,一旦声明立即初始化赋值,且常量的值不可改变。

4.循环作用域

在for循环中,var声明的是全局作用域,每次循环i会被覆盖,所以每次输出都是循环结束后的值。
let是块级作用域,每次循环都有单独的作用域,不会被覆盖。

//var
for (var i = 1; i < 10; i++) {
    setTimeout(() => {
        console.log(i);
    }, 300)
}

在这里插入图片描述

for (let i = 1; i < 10; i++) {
    setTimeout(() => {
        console.log(i);
    }, 300)
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码不停蹄~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值