var let const的区别

以下是具体的主要区别

  • let、const声明的变量仅在块级作用域内有效,var 声明变量是全局的,没有块级作用域功能

  • var存在变量提升,而let,const则不存在

  • let 、const不能在同一块级作用域内重复定义,并且const定义的是常量,不可修改

  • 先说下变量提升吧

<script>
     console.log(a)  // 结果为undefined
     var a = 5; // 先说以下var的变量提升
</script>
    // 上述条件下,执行js前,var会变量提升,JavaScript的工作原理是先编译再执行,在编译过程中,
    //解释器会把所有声明“移动”到所在作用域的最上面,而赋值或其他逻辑会留在原地,这就是变量提升。 
    因此上面代码会  解析为 
    var a; 
    console.log(a)
    a= 5;
	// 这样执行,因此结果为undefined
	// 而若换为let const 控制台则会报错
  • 再看变量声明
 <script>
       var a = 4;   // 此时a为4
       var a = 5;    // 此时a为4
       let b = 3;    // 此时b为3
       b = 5;      // 此时b为5
       let b = 4;   //  let 不能重复声明同一变量控制台报红,修改只能通过赋值修改,
       const g = 3;  // 此时g为3是常亮  
       g =7;  // 给g赋值,g是const定义的常量,控制台报红
    </script>
  • 块级作用域
<script>
        const arr = [1, 2, 3, 4]
        for (let i = 0; i < arr.length; i++) {
            console.log(arr[i])
        }
        console.log(i); // 控制台显示如下
    </script>

在这里插入图片描述
若将let换成var,则控制台显示为
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值