美文网首页
ES6 语法(let & const)

ES6 语法(let & const)

作者: 滨滨_57b5 | 来源:发表于2019-01-04 10:26 被阅读0次

    ES5中变量var有两个作用域,全局作用域函数作用域
    ES6中变量let const多了一个作用域,块作用域

    varlet 的区别
    例如在for循环中,变量i就是在块作用域中

    • 使用var修饰的变量,在块作用域外也可以使用;使用let修饰的变量,在块作用域外不能使用
      for (let i = 0; i < 3; i++) {
      //for (var i = 0; i < 3; i++) {
        console.log(i);
      }
      //for循环是一个块作用域,因此在此作用域内用let声明的i,出了块作用域外,生命周期就结束了,即let声明的变量只在自己的块作用域内有效
      //当使用var修饰i时,此处输出i,会正常输出3(ES5用法)
      //当使用let修饰时,此处会报错i是undefined(ES6用法)
      console.log(i);
    
    • 使用var修饰的变量,可以重复声明;使用let修饰的变量不可以重复声明
      //此处使用let,不能重复声明这个变量
      let b = 1;
      let b = 2;
      //正常
      var b = 1;
      var b = 2;
    

    const的使用

    • const修饰的是常量
    • const修饰的常量,必须赋值
    • const修饰的常量是对象时,对象里边的内容是可以修改的
    function last() {
      //常量,不能修改
      //const在块作用域和let是一样的用法
      //const声明常量时,必须赋值
      const PI = 3.1415926;
      const k = {//常量对象
        a:1
      };
      //当常量是对象时,对象是引用类型(返回值是对象在内存中的指针,即k是指针,指向对象),指针k是不能改变的,对象是可以改变的
      k.b=3;
      console.log(PI,k);
    }
    last();
    

    相关文章

      网友评论

          本文标题:ES6 语法(let & const)

          本文链接:https://www.haomeiwen.com/subject/xgzcrqtx.html