• ES6学习之路1----变量的声明


    1、var

    它是variable的简写,可以理解成变量的意思。在ES6之前,JS声明变量都是采用的var。

    实例1:

    var str = "Hello World!";
    console.log(str);//Hello World!

    实例2:

    var a=2;
    if(true){var a=3;}
    console.log(a);//3

    实例3:

    for(var i=0;i<10;i++){
    console.log('循环体中:'+i);//循环体中:0到9
    }
    console.log('循环体外:'+i);//循环体外:10

    从实例3中可以看出,var在ES6里是用来声明全局变量

    2、let

    它是‘让’,var在ES6里是用来声明局部变量

    实例1:

    var a=2;
    if(true){let a=3;}
    console.log(a);//2

    实例2:

    if(true){let a=3;}
    console.log(a);
    //报错:Uncaught ReferenceError: a is not defined

    实例3:

    for(let i=0;i<10;i++){
    console.log('循环体中:'+i);//循环体中:0到9
    }
    console.log('循环体外:'+i);
    //报错:Uncaught ReferenceError: i is not defined

    通过两个实例3的对比,我们可以很清楚的明白,var声明的是全局变量,而let声明的是局部变量

    作用:

    通过上边的实例,我们可以看出,一个let变量我们在不同的作用域声明的时候,不会被影响。而var则会出现冲突。

    实例1:

    for(let i=0;i<10;i++){
        console.log('循环体外:'+i);//循环体外:0到9
        for(let i=10;i<12;i++){
            console.log('循环体中:'+i);//循环体中:10到11,此处会输出10次,在外层的次i输出后,内层循环一次
        }
    }

    实例2:

    for(var i=0;i<10;i++){
        console.log('循环体外:'+i);//循环体外:0
        for(var i=10;i<12;i++){
            console.log('循环体中:'+i);//循环体中:10,11
        }
    }

    从上实例2就可以看出,var的声明会影响其他的相同变量,而let声明只会在各自的作用域声明,不会影响其他作用域的同名变量,这就导致以后我们在不同的作用域不用为声明变量而苦恼!let相当于解放更多的变量供我们使用!

    3、const

    它是常量的意思,就是声明开始,就对该常量赋值,后边的逻辑操作时只能使用,不能改变的值。

    实例1:

    const a;
    a=3;
    console.log(a);
    //报错:Uncaught SyntaxError: Missing initializer in const declaration

    实例2:

    const a=2;
    var a=3;
    console.log(a);
    //报错:Uncaught SyntaxError: Identifier 'a' has already been declared

    实例3:

    const a=2;
    console.log(a);//2

    作用:

    当我们需要进行最大安全整数比较的时候,我们就需要用一个常量将最大安全整数(Number.MAX_SAFE_INTEGER)声明一个常量,后期在使用的时候不会害怕该值被改变。还有圆周率这些常量在用时的保存。

    总结:

    通过上边的实例,可以很清晰的明白:
    1. var声明的是全局变量,当需要一个变量在全局多个地方使用的时候,就采用var,例如(轮播的index等);
    2. let声明的是局部变量,当需要一个变量只是在某一个作用域使用,就采用let,例如(for循环的index等);
    3. const 声明的是常量,声明就进行赋值,以后不可改变,只能进行使用!例如(圆周率等)

    其他

    我的博客,欢迎交流!

    我的CSDN博客,欢迎交流!

    微信小程序专栏

    前端笔记专栏

    微信小程序实现部分高德地图功能的DEMO下载

    微信小程序实现MUI的部分效果的DEMO下载

    微信小程序实现MUI的GIT项目地址

    微信小程序实例列表

    前端笔记列表

    游戏列表

  • 相关阅读:
    python--向钉钉群发送消息(亲测可用)
    python--注册钉钉回调事件(亲测可用)
    Gradle
    SpringBoot 中thymeleaf模板引擎的使用
    SpringBoot对静态资源的映射规则
    SpringBoot的日志使用
    rsync实现文件同步
    python学习: 优秀Python学习资源收集汇总--转
    Python高级特性: 12步轻松搞定Python装饰器
    Python常见问题
  • 原文地址:https://www.cnblogs.com/linewman/p/9918515.html
Copyright © 2020-2023  润新知