1. 程式人生 > 遊戲攻略 >《對馬島之魂》壹岐島DLC擊竹位置一覽 壹岐島DLC竹場在哪

《對馬島之魂》壹岐島DLC擊竹位置一覽 壹岐島DLC竹場在哪

const 的行為與let基本相同,唯一一個重要的區別是用它宣告變數時必須同時初始化變數,且嘗試修改const宣告的變數會導致執行時錯誤

// const age = 26;
    // age = 35; //  typeError :給常量賦值
    //const 不允許重複宣告
    //const name = 'Matt';
    //const name = 'Nicholas';//SyntaxError 
    //const宣告的作用域也是塊
    // const name = 'matt';
    // if(true){
    //   const name = 'Nicholas';
    // }
    // console.log(name);//matt

const宣告的限制只適用於它指向的變數的引用。換句話說,如果const變數引用的是一個物件,那麼修改這個物件內部的屬性並不違反const的限制

const person = {};
    person.name = "Matt";
    console.log(person);

/* javascript 引擎會為for迴圈中的let宣告分別建立獨立的變數例項,雖然const變數跟let變數很相似,但是不能用const來宣告迭代變數(因為迭代變數會自增) */

 // for (const i = 0; i < 10; ++i) {  //TypeError:給常量賦值

    // }

/* 不過,如果你想用const宣告一個不會被修改的for迴圈變數,那也是可以的。也就是說,每次迭代只是建立一個新變數。這對for-in和for-of迴圈特別有意義 */

let i = 0;
    // debugger;
    for (const j = 7; i < 5; ++i) {
      console.log(i); //7,7,7,7,7
    }
   
    for (const key in { 
        a: 1,
        b: 2
      }) {
      console.log(key); //a,b
    }
    for (const value of [1, 2, 3, 4, 5]) {
      // debugger;
      console.log(value) //1,2,3,4,5
    }
let i = 0;
    // debugger;
    for (const j = 7; i < 5; ++i) {
      console.log(i); //7,7,7,7,7
    }
   
    for (const key in { 
        a: 1,
        b: 2
      }) {
      console.log(key); //a,b
    }
    for (const value of [1, 2, 3, 4, 5]) {
      // debugger;
      console.log(value) //1,2,3,4,5
    }

宣告風格及最佳實踐ECMAScript 6增加let和const從客觀上為這門語言更精確地宣告作用域和語義提供了更好的支援。行為怪異的var所造成的各種問題,已經讓JavaScript社群為之苦惱了很多年。隨著這兩個新關鍵字的出現,新的有助於提升程式碼質量的最佳實踐也逐漸顯現。
1.不使用var
有了let和const,大多數開發者會發現自己不再需要var了。限制自己只使用let和const有助於提升程式碼質量,因為變數有了明確的作用域、宣告位置,以及不變的值。
2.const優先,let次之
使用const宣告可以讓瀏覽器執行時強制保持變數不變,也可以讓靜態程式碼分析工具提前發現不合法的賦值操作。因此,很多開發者認為應該優先使用const來宣告變數,只在提前知道未來會有修改時,再使用let。這樣可以讓開發者更有信心地推斷某些變數的值永遠不會變,同時也能迅速發現因意外賦值導致的非預期行為。