var 剧董,let const 區(qū)別
1.塊級(jí)作用域
? ? ?let摘仅,const有自己的{}作用域奴烙,var沒(méi)有剂娄,var聲明的變量會(huì)作為window的屬性
2.變量提升
? ? var聲明的變量存在變量提升
3.聲明同名變量
? ?var可再次聲明同名變量
4. 暫存死區(qū)
var a = 100;
if(1){
?a = 10; //在當(dāng)前塊作用域中存在a使用let/const聲明的情況下鸯乃,給a賦值10時(shí)鲸阻,只會(huì)在當(dāng)前作用域找變量a,
?// 而這時(shí)缨睡,還未到聲明時(shí)候鸟悴,所以控制臺(tái)Error:a is not defined?
?let a = 1;
}
5. const
一旦聲明必須賦值,不能使用null占位。
聲明后不能再修改奖年。
如果聲明的是引用類(lèi)型數(shù)據(jù)细诸,可以修改其屬性。