• es6新语法:let、const


    关于浏览器的兼容情况,可以访问can i use进行查询。

    目前的主要方式还是通过使用Babel编译来解决兼容性问题。

    我们目前使用Babel将ES6的代码兼容到了IE8,但这是在放弃某些新特性的条件下(例如export * from "xxx"等)。

    let声明变量,可以说是具有作用域的var,用于声明变量,主要规则如下:

    1、let声明的变量拥有块级作用域

    {
    let i=1;
    console.log(i);//1
    }
    console.log(i);//Uncaught ReferenceError: i is not defined

    2、同一作用域,let变量应该先声明再调用,同时不能重复声明

    {
        console.log(t1); // undefined
        var t1 = "var声明的变量";
        console.log(t2); // Uncaught ReferenceError: t2 is not defined
        let t2 = "let声明的变量"
    }
    {
        let t3 = "第一次声明";
        console.log(t3); // 直接报错 Uncaught SyntaxError: Identifier 't3' has already been declared
        let t3 = "第二次声明"
    }

    3、for循环中,let声明的变量在循环内部的独立作用域会形成对应的副本

    var a=[];
    for(var i=0;i<10;i++){
       a[i] = fucntion(){
           console.log('i的值='+i);    
        }        
    }
    console.log(i);
    a[6]();//i的值是10,  无论a[n],i都是10
    
    var a = [];
    for (let i = 0; i < 10; i++) {
        a[i] = function() {
            console.log("i的值="+i);
        };
    }
    // console.log(i) // 未定义 报错 Uncaught ReferenceError: i is not defined
    a[6](); // i的值=6

    const 声明静态变量,声明以后不能再修改,其他用法和let一样

    const PI; //报错 Uncaught SyntaxError: Missing initializer in const declaration
    const PI = 3.14; // 正确用法
    PI = 3.1415; //报错,重复定义 Uncaught TypeError: Assignment to constant variable
  • 相关阅读:
    java socket解析和发送二进制报文工具(附java和C++转化问题)
    hibernate缓存机制(二级缓存)
    Spring MVC中前后台数据传输小结
    NUC972 MDK NON-OS
    代码是如何控制硬件的?
    C语言位运算+实例讲解(转)
    C语言程序真正的启动函数
    51单片机的时钟及总线时序和总线扩展
    如何通过Keil将程序正确的下载进flash中
    说说M451例程讲解之串口
  • 原文地址:https://www.cnblogs.com/zsz179248496/p/6825107.html
Copyright © 2020-2023  润新知