淺談var,let,const
眾所周知,var,let 是聲明變量的,const是聲明常量的
先簡單剖析一下,var,let的區別
var 在ES6之前使用,而到了ES6之后官方就不推薦使用了,究其原因還是因為它自身的原因,導致代碼令人感覺不太合理。
console.log(num); var num = 10; // 打印 undefined, 而不是報錯, 這說明var將變量的聲明提升
// var num; num = 10; console.log(num); // 打印 10, var 將變量num的聲明提升到最頂層 var num;
for(var i=0;i<5;i++){ console.log("222222",i); } console.log("ssss",i) //由于用var聲明的i,所以在這里能獲取到for循環中的i,產生了變量污染
而如果換成let的話就會提示很正確的錯誤。
console.log(num1); let num1 = 10; //Uncaught ReferenceError: Cannot access 'num1' before initialization
for(let i=0;i<5;i++){ console.log("222222",i); } console.log("ssss",i) //Uncaught ReferenceError: i is not defined 這是正常的錯誤
const 聲明的常量不能修改;
const num = 10 num = 11 // TypeError: Assignment to constant variable. console.log("num:",num)
const num; num = 10; // Uncaught SyntaxError: Missing initializer in const declaration console.log(num)
浙公網安備 33010602011771號