let,var,const区别

本文介绍了ES6中let和const替代var定义变量和常量的原因。let解决了var导致的变量作用域穿透问题,防止了变量在块级作用域外被引用。const用于定义常量,一旦赋值不可更改,确保了常量的不变性。文章通过实例展示了let和const在防止变量穿透和常量修改方面的优势。
摘要由CSDN通过智能技术生成

定义变量

  1. 传统定义变量和常量都用var
  2. Es6
    1. 定义变量用let
    2. 定义常量用const
var name = "dasda";
var PI = Math.E;
-----------------------
let pwd = 123;
const PI = Math.E;

let,var,const区别

  1. let和const解决var变量穿透问题和常量修改问题

    1. 穿透问题

      1. <script>
            for(var i = 0; i <= 5; i++){
                console.log(i);
            }
        	console.log(i);
        </script>
        test.html:12 1
        test.html:12 2
        test.html:12 3
        test.html:12 4
        test.html:12 5
        test.html:14 6
        //6被输出,出现穿透问题
        <script>
            for(let i = 0; i <= 5; i++){
                console.log(i);
            }
        	console.log(i);
        </script>
        test.html:12 1
        test.html:12 2
        test.html:12 3
        test.html:12 4
        test.html:12 5
        test.html:14 Uncaught ReferenceError: i is not defined
            at test.html:14
        //使用let以后报错不会出现穿透问题
        
    2. 常量修改问题

      1. //使用var定义常量是可以修改的
        <script>
            var A = "aaa";
        	A = "bbb"
        	console.log(A)
        </script>
        //使用const定义常量修改报错
        <script>
            const A = "aaa";
        	A = "bbb"
        	console.log(A)
        </script>
        test.html:12 Uncaught TypeError: Assignment to constant variable.
            at test.html:12
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值