let羔沙、const和var的區(qū)別

es6新增的變量聲明方式let、const和之前的var都可以用來聲明變量厨钻。那么這三者的區(qū)別是什么呢扼雏?

let

  1. let的作用域是塊級作用域,es6之前的作用域只有全局作用域夯膀、函數(shù)作用域诗充,沒有塊級作用域
  2. let聲明的變量不會有聲明提升,所以在let 聲明的變量之前訪問改變量會造成報錯棍郎,也就是暫時性死區(qū)
console.log(b); //ReferenceError: b is not defined
let b = '1';
  1. 不能重復(fù)定義
let a = 1;
let a = 2;//Identifier 'a' has already been declared
  1. 存在暫時性死區(qū)
var a = 1;
if(1){
  console.log(a);//報錯
  let a = 2;
}

①在一個塊級作用域中其障,變量唯一存在,一旦在一個塊級作用域中用let聲明了一個變量涂佃,那么這個變量就屬于這個塊級作用域所有励翼,不受外部變量的影響
②無論在塊中的任何地方聲明變量,在塊中使用這個名字的變量都是這個變量辜荠,無論外部是否有其他同名變量汽抚。
③暫時性死區(qū)的本質(zhì)就是,只要進(jìn)入到當(dāng)前作用域伯病,那么在變量聲明之前造烁,該變量都是不可用的否过,只有聲明變量之后才能使用
④暫時性死區(qū)的意義:規(guī)范代碼,讓我們把聲明變量的工作放在作用域的前面惭蟋,這樣代碼一目了然

const

const用來聲明一個常量苗桂,且聲明的常量是不允許修改的,只讀屬性告组。所以在聲明的時候必須賦值煤伟,否則會報錯。
const和let一樣存在暫時性死區(qū)木缝,沒有變量提升便锨,也不允許重復(fù)聲明。
const定義之后再重復(fù)賦值也會報錯我碟。

const a = 1;
a = 2;//報錯

假如const定義的變量是一個對象放案,那么可以給這個對象的變量賦值、增加屬性矫俺、刪除屬性等操作都是可以的吱殉。
因?yàn)閏onst是限制了定義的變量不再重新分配地址,也就是地址不變厘托,但是指向的地址上存儲的內(nèi)容是可變的考婴。
const定義了一個無法重新分配內(nèi)存的變量。const僅僅阻止重新分配催烘,而不是不可變的。
這一點(diǎn)跟Obejct.freeze()有很大的區(qū)別缎罢。
Object.freeze(obj)返回一個不可變的對象伊群,這意味著不能刪除、修改策精、添加對象的屬性舰始。
但是Object.freeze很膚淺,假如參數(shù)對象的屬性也是對象咽袜,那么Object.freeze對這個對象的對象屬性就不起作用了丸卷,需要對obj進(jìn)行遞歸遍歷并用Object.freeze處理。

var

①var的作用域是函數(shù)作用域询刹,在函數(shù)內(nèi)利用var聲明一個變量谜嫉,則在函數(shù)內(nèi)這個變量有效。
②變量聲明提升

function(){
  console.log(a);//undefined
  var a = 1;
  console.log(a);//1
}
console.log(a);//報錯
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凹联,一起剝皮案震驚了整個濱河市沐兰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蔽挠,老刑警劉巖住闯,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡比原,警方通過查閱死者的電腦和手機(jī)插佛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來量窘,“玉大人雇寇,你說我怎么就攤上這事“蟾模” “怎么了谢床?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長厘线。 經(jīng)常有香客問我识腿,道長,這世上最難降的妖魔是什么造壮? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任渡讼,我火速辦了婚禮,結(jié)果婚禮上耳璧,老公的妹妹穿的比我還像新娘成箫。我一直安慰自己,他們只是感情好旨枯,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布蹬昌。 她就那樣靜靜地躺著,像睡著了一般攀隔。 火紅的嫁衣襯著肌膚如雪皂贩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天昆汹,我揣著相機(jī)與錄音明刷,去河邊找鬼。 笑死满粗,一個胖子當(dāng)著我的面吹牛辈末,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播映皆,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼挤聘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了捅彻?” 一聲冷哼從身側(cè)響起檬洞,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沟饥,沒想到半個月后添怔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體湾戳,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年广料,在試婚紗的時候發(fā)現(xiàn)自己被綠了砾脑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡艾杏,死狀恐怖韧衣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情购桑,我是刑警寧澤畅铭,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站勃蜘,受9級特大地震影響硕噩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜缭贡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一炉擅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧阳惹,春花似錦谍失、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至纲岭,卻和暖如春攒巍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背荒勇。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留闻坚,地道東北人沽翔。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像窿凤,于是被迫代替她去往敵國和親仅偎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容