• 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
  • 相关阅读:
    github代码上传下载慢问题
    React Native环境搭建
    分布式模式之Broker模式
    如何构建技术体系
    https nginx配置
    自我管理--拖延 vs 心理
    idea+maven本地仓库更新问题
    后台服务集群日志管理
    技术男励志圣经
    线段树合并
  • 原文地址:https://www.cnblogs.com/zsz179248496/p/6825107.html
Copyright © 2020-2023  润新知