ES6:ES6的var ,let,const区别(五颗星)

1.var

1. 可以先使用,再声明

2. 可以重复定义一个变量

3. for循环中使用------造成全局变量污染

4. 拥有预解析

 <script>
        // 1. 可以先使用,再声明

        console.log(a);
        var a = 10;


        // 2. 可以重复定义一个变量

        var b = 10;
        var b = 20;
        console.log(b);//20

        // 4. 拥有预解析

        // 3. for循环中使用------造成全局变量污染
        for(var i=0;i<5;i++){
            console.log(i);0,1,2,3,4
        }
        // i 是 全局变量 
        console.log(i);5
  </script>

2.let-----解决var的问题

1. 不能先使用,再声明,可以先声明不赋值,后面在赋值。

2. 不能重复定义一个变量,

3. 不会造成全局变量污染的

4.拥有块级作用域(ES6) {}内的会形成一个作用域

5.let 没有预解析

  <script>
        // 需求: 使用let解决var的问题

        // 1. 不能先使用,再声明
        // console.log(a);//报错
        let a = 10;
        console.log(a);//10

        // 2. 不能重复定义一个变量
        let b = 10;
        // let b = 20;//报错
    

        // **** 5.let 没有预解析


        // 3. 不会造成全局变量污染的
        for(let i=0;i<5;i++){
            // 将i变成局部变量
            console.log(i);//0,1,2,3,4
        }

        // console.log(i);//报错,i没定义
        // **** 4.拥有块级作用域(ES6)   {}内的会形成一个作用域
        {
            let c = 10;
        }
        // console.log(c);//报错,c没定义
    </script>

3.const

1. 不能先使用,再声明(没有预解析)

2. 一旦声明必须赋值,不能重复声明

3. 赋值之后 不能修改

4. 拥有块级作用域

5.引用类型的值可以修改

当const声明一个常量,这个常量是引用数据类型(对象,数组,函数....), const变量一旦赋值(引用地址)不能修改,为什么不能修改:

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

前端面试题 文章被收录于专栏

前端面试的一些常问问题、问题的具体实现(可直接运行)以及底层原理

全部评论

相关推荐

给🐭🐭个面试机会吧:嘿,mvbatis
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务