let,const

let const

let

  • 與var的區(qū)別
    • 塊級(jí)作用域
    • 不存在變量提升(會(huì)導(dǎo)致暫時(shí)性死區(qū))
    • 不允許重復(fù)聲明

1.塊級(jí)作用域

  • es5是函數(shù)作用域var變量會(huì)導(dǎo)致塊級(jí)作用域外泄:
// 塊級(jí)作用域外泄
var a = {test: '123', test1: '345'};
for (var item in a) {
    console.log(item);
}
console.log(item);//可以讀出item
  • es6中l(wèi)et關(guān)鍵字解決塊級(jí)作用域外泄
// 解決方法ES6中的let關(guān)鍵字
var a = {test: '123', test1: '345'};
for (let item in a) {
    console.log(item);
}
console.log(item);//塊級(jí)作用域外不可以讀出item

// 事實(shí)上babel會(huì)將上面語句轉(zhuǎn)換為:
var a = {test: '123', test1: '345'};
for (var _item in a) {
    console.log(_item);
}
console.log(item);

2.不存在變量提升

  • es5中的變量提升
console.log(foo); // 輸出undefined
var foo = 2;
// 相當(dāng)于
var foo;
console.log(foo); // 輸出undefined
foo = 2;
  • es6中l(wèi)et不存在變量提升
console.log(bar); // 報(bào)錯(cuò)ReferenceError
let bar = 2;
  • 塊級(jí)作用域和變量不提升導(dǎo)致的暫時(shí)性死區(qū)
//塊級(jí)作用域與let變量聲明之間的這一塊就是暫時(shí)性死區(qū)
var tmp = 123;
if (true) {
  tmp = 'abc'; // ReferenceError
  let tmp;
}

3.不允許重復(fù)聲明

  • es5中同一作用域下聲明兩個(gè)一樣的變量會(huì)后者覆蓋
var item = 1;
var item = 2;
console.log(item);//2
  • let不允許在相同作用域內(nèi)驰怎,重復(fù)聲明同一個(gè)變量。
// 報(bào)錯(cuò)
var item = 1;
let item = 2;
console.log(item);

const

  • const聲明一個(gè)只讀的常量钝吮。一旦聲明怜庸,常量的值就不能改變盼忌。

    • const的作用域與let命令相同:只在聲明所在的塊級(jí)作用域內(nèi)有效赘方。
    • const命令聲明的常量也是不提升铛楣,同樣存在暫時(shí)性死區(qū)
    • const聲明的常量目溉,也與let一樣不可重復(fù)聲明明肮。
  • const的本質(zhì)

    • const實(shí)際上保證的,并不是變量的值不得改動(dòng)缭付,而是變量指向的那個(gè)內(nèi)存地址不得改動(dòng)晤愧。
    const foo = {}; 
    // 為 foo 添加一個(gè)屬性,可以成功
    foo.prop = 123;
    foo.prop // 123
    // 將 foo 指向另一個(gè)對(duì)象蛉腌,就會(huì)報(bào)錯(cuò)
    foo = {}; // TypeError: "foo" is read-only
    

let和const變量的聲明不在是在全局變量上

var a = 1;
// 如果在 Node 的 REPL 環(huán)境官份,可以寫成 global.a
// 或者采用通用方法,寫成 this.a
window.a // 1

let b = 1;
window.b // undefined
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末烙丛,一起剝皮案震驚了整個(gè)濱河市舅巷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌河咽,老刑警劉巖钠右,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異忘蟹,居然都是意外死亡飒房,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門媚值,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狠毯,“玉大人,你說我怎么就攤上這事褥芒〗浪桑” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長献酗。 經(jīng)常有香客問我寝受,道長,這世上最難降的妖魔是什么罕偎? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任很澄,我火速辦了婚禮,結(jié)果婚禮上颜及,老公的妹妹穿的比我還像新娘甩苛。我一直安慰自己,他們只是感情好器予,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布浪藻。 她就那樣靜靜地躺著捐迫,像睡著了一般乾翔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上施戴,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天反浓,我揣著相機(jī)與錄音,去河邊找鬼赞哗。 笑死雷则,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的肪笋。 我是一名探鬼主播月劈,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼藤乙!你這毒婦竟也來了猜揪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤坛梁,失蹤者是張志新(化名)和其女友劉穎而姐,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體划咐,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拴念,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了褐缠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片政鼠。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖队魏,靈堂內(nèi)的尸體忽然破棺而出缔俄,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布俐载,位于F島的核電站蟹略,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏遏佣。R本人自食惡果不足惜挖炬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望状婶。 院中可真熱鬧意敛,春花似錦、人聲如沸膛虫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽稍刀。三九已至撩独,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間账月,已是汗流浹背综膀。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留局齿,地道東北人剧劝。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像抓歼,于是被迫代替她去往敵國和親讥此。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

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