ES6之let 和 const 命令

基础点

  • let和const 都是只在声明所在的块级作用域内有效

  • let声明的变量可以改变,值和类型都可以改变,没有限制

    {
     let a = 10;
     var b = 1;
     } a // 报错,ReferenceError: a is not defined. b // 1
    
  • const声明只读的常量并且必须立即初始化

    const PI = 3.1415;
    PI // 3.1415
    PI = 3; // 报错,TypeError: "PI" is read-only.
    
  • ES5中var只有全局作用域和函数作用域

不存在变量提升

  • let和const不像var那样会发生“变量提升”现象。所以,变量一定要在声明后使用,否则报错

  • 命令声明变量之前,该变量都是不可用的

      console.log(foo); // 输出undefined
      console.log(bar); // 报错,ReferenceError: bar is not defined.
      var foo = 2;
      let bar = 2;
    

不允许重复声明

  • let和const不允许在相同作用域内,重复声明同一个变量

  • 定义在不同作用域的同名变量互不干扰

    // 报错,TypeError: Duplicate declaration "a".
    function test() {
      let a = 10;
      var a = 1;
    }
    
    // 报错,TypeError: Duplicate declaration "a".
    function test() {
      let a = 10;
      let a = 1;
    }
    

前端小学生,仅个人总结,欢迎大佬指点,谢谢!

    原文作者:红色的河马
    原文地址: https://www.jianshu.com/p/6b614c7dd16c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞