ES6之let與const

思維導(dǎo)圖

JavaScript共包含三個(gè)部分:ECMAScript、DOM和BOM,而我們今天開始所要講的ES6的全稱就是ECMAScript6,它是2015年發(fā)布的ECMAScript標(biāo)準(zhǔn),故又被稱之為ECMAScript2015。而后每年都會(huì)更新一個(gè)新版本,并以該年份置于其后作為標(biāo)識(shí),而這些從2015年開始的ECMAScript版本都被統(tǒng)稱為ES6。

ES6相對(duì)之前版本增加了很多新的特性,但是也有很多都只是語(yǔ)法糖,也就是說實(shí)現(xiàn)功能和之前一樣,只是語(yǔ)法更簡(jiǎn)潔了而已(如箭頭函數(shù)、類)。這些新特性新語(yǔ)法給我們開發(fā)帶來了很多便利,提高了工作效率和降低了維護(hù)成本。遺憾的是,現(xiàn)代瀏覽器對(duì)ES6兼容參差不齊,所以導(dǎo)致很多人雖然想用但是不敢用。不過幸虧有了像Babel這樣優(yōu)秀的編譯工具,能將ES6語(yǔ)法編譯成現(xiàn)代瀏覽器能識(shí)別的ES6之前版本,這樣我們又可以輕松愉快地使用它了。

接下來,就讓我來為大家一步步地打開這扇通往ES6的大門吧!


一、let——變量聲明

在ES6之前,我們是使用var來聲明變量,那么我們就來簡(jiǎn)單說說varlet之間到底有什么區(qū)別。

1. 塊級(jí)作用域

var聲明的變量不是塊級(jí)作用域,所以代碼塊之外能訪問代碼塊中的變量。

{   // 代碼塊
  var a = 0;  // 全局變量,外部可訪問
}
console.log(a);   // 0

let聲明的變量是塊級(jí)作用域,所以代碼塊之外無法訪問代碼塊中的變量。

{   // 代碼塊
  let a = 0;  // 局部變量,外部可訪問
}
console.log(a);   // 報(bào)錯(cuò)

2. 暫時(shí)性死區(qū)

var聲明的變量會(huì)進(jìn)行變量提升,也就是說,該變量聲明總會(huì)被提升到作用域最頂部。

{
  a = 0;
  var a;
}
console.log(a);   // 0

變量a的作用域?yàn)槿?,故以上代碼其實(shí)相當(dāng)于下面代碼:

var a;  // 變量提升
{
  a = 0;
}
console.log(a);   // 0

然后再看下面這個(gè)例子:

console.log(a);   // undefined
{
  a = 0;
  var a;
}
還有 64% 的精彩內(nèi)容
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • let 和 const 命令 let 命令 塊級(jí)作用域 const 命令 頂層對(duì)象的屬性 gl...
    安小明閱讀 1,036評(píng)論 0 0
  • 在ES6中新增加了let和const,現(xiàn)在來看看他們的基本用法。 let: 1:不存在變量提升 var命令會(huì)發(fā)...
    lionlsc閱讀 194評(píng)論 0 0
  • let 命令 塊級(jí)作用域 const 命令 頂層對(duì)象的屬性 global 對(duì)象 let 命令 基本用法 ES6 新...
    嘉奇呦_nice閱讀 1,692評(píng)論 0 2
  • let 一、塊級(jí)作用域 塊級(jí)作用域也稱作詞法作用域,存在于函數(shù)與塊中{}let只在塊級(jí)作用域中存在,因此當(dāng)你在不同...
    lesdom閱讀 607評(píng)論 0 0
  • 這是一篇我很久以前發(fā)表在博客園的文章,因?yàn)樽罱铝藱C(jī)子的環(huán)境,又要重新設(shè)置一次環(huán)境,現(xiàn)在就體驗(yàn)到經(jīng)常寫文章的好處...
    梁睿坤閱讀 3,364評(píng)論 0 0

友情鏈接更多精彩內(nèi)容