《對馬島之魂》壹岐島DLC擊竹位置一覽 壹岐島DLC竹場在哪
阿新 • • 發佈:2021-08-23
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。這樣可以讓開發者更有信心地推斷某些變數的值永遠不會變,同時也能迅速發現因意外賦值導致的非預期行為。