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;
    }
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容