ES6基礎(chǔ)-為什么要用let和const

如題被芳,為什么要用 letconst 呢襟企?

在開始這個(gè)話題之前肪获,我們先來通過以下的小例子了解一下 JavaScriptvar 聲明及變量提升機(jī)制寝凌。

image

按照一般邏輯,變量應(yīng)該在聲明語句之后才可以使用孝赫,但在上面的代碼中较木,是聲明之前輸出foo的值,且這個(gè)值為undefined青柄,這就說明變量在聲明之前就已經(jīng)存在了伐债。為什么用var會(huì)出現(xiàn)這種問題呢?下次我們?cè)谟懻撝驴_@里就是人們經(jīng)常說的變量提升峰锁,即變量可以在聲明之前使用,值為undefined双戳。我們consolelet聲明的變量bar虹蒋,報(bào)錯(cuò)了,這就表示聲明之前飒货,變量bar是不存在的魄衅,這里就沒有變量提升的現(xiàn)象出現(xiàn)。為了糾正這種現(xiàn)象塘辅,讓大家更好的理解代碼晃虫,let命令改變了語法行為,它所使用的變量一定要在聲明之后使用扣墩,否則就會(huì)報(bào)錯(cuò)哲银。

1. let 命令

特性:

  • 塊級(jí)聲明

  • 不存在變量提升

  • 不允許重復(fù)聲明

1.1 塊級(jí)聲明和不存在變量提升

塊級(jí)聲明是指某個(gè)變量只在相應(yīng)的作用域內(nèi)生效扛吞,外部是不可以訪問的。let 聲明的用法與 var相同荆责,不同的是不存在變量提升喻粹,在指定作用域生效。常見的塊級(jí)作用域:

  • 函數(shù)內(nèi)部

  function fn1 () {

    let a = 5

    if (true) {

      let a = 10

    }

    console.log(a)

  }

  // fn1()

  function fn2 () {

    var b = 2

    if (true) {

      var b = 4

    }

    console.log(b)

  }

  // fn2()

  • 塊中 {}

{

  let a = 10

  var b = 1

}

console.log(a) // ReferenceError: a is not defined

console.log(b) // 1

1.2 不允許重復(fù)聲明

let 不允許在相同作用域內(nèi)重復(fù)聲明同一個(gè)變量草巡。


  // 報(bào)錯(cuò):Identifier 'a' has already been declared at Object

  function fn() {

    let a = 10

    var a = 1

  }

  // fn()

  // 報(bào)錯(cuò):Identifier 'a' has already been declared at Object

  function fn1 () {

    let a = 10

    let a = 1

  }

  // fn1()

  // 報(bào)錯(cuò):Identifier 'a' has already been declared at Object

  function fn2 (arg) {

    let arg

  }

  // fn2()

2. const 命令

const 通常聲明的是一個(gè)只讀的常量,一旦聲明了型酥,其中的值是不能改變山憨,這就意味著聲明的這個(gè)常量必須是要賦值的。


// 值不能變

const S = 60

S = 120

// TypeError: Assignment to constant variable.

// 必須賦值

const M

// Missing initializer in const declaration

const 除了值不能變和只讀弥喉,其他的特性跟 let 是一樣的郁竟,同樣是塊級(jí)聲明、不存在變量提升和不允許重復(fù)聲明由境。在這里需要注意一點(diǎn)的是棚亩,聲明常量的時(shí)候要必須確保這個(gè)值是固定不變的。

總結(jié)

回到問題:為什么要用 letconst 虏杰?

新語法的出現(xiàn)讥蟆,不僅使得我們更容易的理解JS,而且減少很多奇奇怪怪的問題出現(xiàn)纺阔。塊級(jí)聲明瘸彤,可以很有效的避免了變量污染這個(gè)問題。

想繼續(xù)學(xué)習(xí)更多有關(guān)前端知識(shí)笛钝,可以關(guān)注我的公眾號(hào)质况。大家一起來學(xué)習(xí)如何快速掉頭發(fā)

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市玻靡,隨后出現(xiàn)的幾起案子结榄,更是在濱河造成了極大的恐慌,老刑警劉巖囤捻,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件臼朗,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡最蕾,警方通過查閱死者的電腦和手機(jī)依溯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瘟则,“玉大人黎炉,你說我怎么就攤上這事〈着。” “怎么了慷嗜?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵淀弹,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我庆械,道長(zhǎng)薇溃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任缭乘,我火速辦了婚禮沐序,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘堕绩。我一直安慰自己策幼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布奴紧。 她就那樣靜靜地躺著特姐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪黍氮。 梳的紋絲不亂的頭發(fā)上唐含,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音沫浆,去河邊找鬼捷枯。 笑死,一個(gè)胖子當(dāng)著我的面吹牛专执,可吹牛的內(nèi)容都是我干的铜靶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼他炊,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼争剿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起痊末,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤蚕苇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后凿叠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涩笤,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年盒件,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蹬碧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡炒刁,死狀恐怖恩沽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情翔始,我是刑警寧澤罗心,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布里伯,位于F島的核電站,受9級(jí)特大地震影響渤闷,放射性物質(zhì)發(fā)生泄漏疾瓮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一飒箭、第九天 我趴在偏房一處隱蔽的房頂上張望狼电。 院中可真熱鬧,春花似錦弦蹂、人聲如沸漫萄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至毕骡,卻和暖如春削饵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背未巫。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國打工窿撬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人叙凡。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓劈伴,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親握爷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子跛璧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

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