ES6之let 和 const 命令

基礎點

  • let和const 都是只在聲明所在的塊級作用域內(nèi)有效

  • 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只有全局作用域和函數(shù)作用域

不存在變量提升

  • let和const不像var那樣會發(fā)生“變量提升”現(xiàn)象。所以,變量一定要在聲明后使用,否則報錯

  • 命令聲明變量之前,該變量都是不可用的

      console.log(foo); // 輸出undefined
      console.log(bar); // 報錯,ReferenceError: bar is not defined.
      var foo = 2;
      let bar = 2;
    

不允許重復聲明

  • let和const不允許在相同作用域內(nèi),重復聲明同一個變量

  • 定義在不同作用域的同名變量互不干擾

    // 報錯,TypeError: Duplicate declaration "a".
    function test() {
      let a = 10;
      var a = 1;
    }
    
    // 報錯,TypeError: Duplicate declaration "a".
    function test() {
      let a = 10;
      let a = 1;
    }
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容