首页 > 其他 > 详细

ES6——let、const和var的区别

时间:2021-03-27 22:36:46      阅读:42      评论:0      收藏:0      [点我收藏+]

let定义变量,const定义常量。

const声明的常量,一旦申明,不可修改。

var 和 let 都可以申明变量,那它们的区别在哪呢。

  var let
变量提升  √  
没有申明,可以使用  √   
可重复申明  √  
在实际开发中(建议) web,低版本的浏览器不支持let。 小程序,uniapp等。

变量提升

在没有定义的情况下,输出一个变量。会报not defined

技术分享图片

 

 

 在定义语句的上面输出变量,就会输出undefined。

技术分享图片

 

 

 可重复申明:

    <script>
        var a = 1;
        var a = 10;
        console.log(a);  //输出 10,a的值被覆盖。

        var b = 1;
        let b = 1;
        console.log(b);  //报错:Identifier ‘b‘ has already been declared(标识符 b 已声明)

        let c = 3;
        let c = 3;
        console.log(c);  //报错:Identifier ‘c‘ has already been declared(标识符 c 已声明)
    </script>

 

let 和 const 解决了上面问题:

1.var 的 变量穿透问题。

2.常量修改的问题(只会被覆盖)

变量穿透:

<script>
    for(var i=0; i<5; i++){
        console.log(i);
    }

    console.log(i);
</script>

结果:技术分享图片

 

 

浏览器控制台输出了 1到5,造成了变量穿透。

<script>
    for(let i=0; i<5;i++){
         console.log(i);
    }

    console.log(i);
</script>

结果:技术分享图片

 

 let有作用域的概念,它只在let命令所在的代码块内有效,非常适用于 for 循环。

常量修改:

<script>
    var PI = Math.PI;
    var PI = 100;
    console.log(PI); 
</script>

结果:技术分享图片

 

 常量PI的值被覆盖。

<script>
    const PI = Math.PI;
    PI = 100;
    console.log(PI); 
</script>

结果:技术分享图片

 const一旦声明不可修改。

ES6——let、const和var的区别

原文:https://www.cnblogs.com/nyfq/p/14583920.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!