ES6----var与let的区别

本文探讨了JavaScript中let与var声明变量的不同之处,包括作用域、变量提升、暂时性死区及重复声明的问题,并通过示例代码进行说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相同点:声明变量。
不同点:
1、let声明的变量只在let命令所在的代码块内有效。

for (var i=0; i<5; i++){
            var a = 1;
            let b = 2;
        }
alert(a);     //打印出  1;
alert(b);     //报错   b is not defined;

2、let不存在变量提升。

console.log(a);
var a = 2;        //打印 undefind(定义了未赋值)

console.log(b);
let b = 3;        //报错。b is not defined(未定义)

3、let会造成暂时性死区。

var a = 2;

if (true) {
    a = 'a';
    let a;     //报错。a is not defined.
}

4、let不允许在相同的作用域内重复声明同一个变量。

function() {
    var a = 10;
    let a = 1;
}              

function() {
    let  a = 10;
    let  a = 1;
}

因此,不能在函数内部重新声明参数。

function func(a) {
  let a; // 报错
}

function func(a) {
  {
    let a; // 不报错
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值