1. 程式人生 > 實用技巧 >var let const區別

var let const區別

var let const的區別

  • var && let

    宣告一個變數 var name="tony"

    function varTest() {
      var x = 31;
      if (true) {
        var x = 71;  // same variable!
        console.log(x);  // 71
      }
      console.log(x);  // 71
    }
    
    function letTest() {
      let x = 31;
      if (true) {
        let x = 71;  // different variable
        console.log(x);  // 71
      }
      console.log(x);  // 31
    }
    

    let 不允許重複宣告一個變數

    <script>
        if (true) {
          let a;
          let a; // Uncaught SyntaxError: Identifier 'a' has already been declared
        }
    
        if(true){
          var d;
          var d;    //不會報錯
        }
    
        if (true) {
          var c;
          let c; // Uncaught SyntaxError: Identifier 'c' has already been declared
        }
    
        if (true) {
          let d;
          var d; // Uncaught SyntaxError: Identifier 'd' has already been declared
        }
    </script>
    
    • const

      宣告一個常量,並不是這個常量補課班,而是這個常量不能再次被賦值

      <script>
          /*不會報錯,因為names1指向的地址不變,改變的只是內部資料*/
          const names1 = [];
                names1[0] = 1;
                names1[1] = 2;
                names1[2] = 3;
                names1[3] = 10;
          console.log(names1);
      
          /*出錯,因為變數names2指向的地址不能發生改變,應始終指向[]所在的地址,[1,4]與[6,7]不是同一個地址*/
          const names2=[1,4];
                names2=[6,7];   //報錯
      </script>