JavaScript ES6 - let 與 const 使用方及與var對比

ES6 語法: let 與 const

本文主要講解 let / const / var 關鍵字相關內容, 解釋了它們的基本用法以及相關需要注意的知識點; 其中還包含一些作用域的相關概念 汇鞭。

let / const / var 它們的作用基本上是一致的, 但是它們還是有很多區(qū)別的; 下面我們就來看看他們之間的區(qū)別與作用 。

1. 作用域

1. 在 ES6 之前, 也就是 ES5 中, 有兩個作用域
   1. 全局作用域
   2. 函數(shù)作用域
   
2. 在 ES6 中新增加了 '塊級作用域' {} 淡溯。

2 let 聲明一個變量

// let 聲明一個變量
function test1() {
  let num1 = 1111
  var num2 = 2222
  console.log('此時 let 與 var 沒有任何區(qū)別: ', num1, num2);
}
// 此時使用 let 與 var 沒有任何區(qū)別
test1()
// 打印結果:
// 此時 let 與 var 沒有任何區(qū)別:  1111 2222

2.1 塊級作用域

// ES6 let
function test2() {
  for (let index = 1; index < 3; index++) {
    console.log('塊級作用域內: ', index);
    // 打印結果:
    // 塊級作用域內:  1
    // 塊級作用域內:  2
  }
  /**
   * 1. 此處打印 'index' 報錯: ReferenceError: index is not defined (報錯的意思是: 引用錯誤, 'index' 沒有找到)
   *    1. 這里體現(xiàn)的是: let 聲明的變量, 只在自己的塊級作用域內有效 血筑。
   * 2. ES6 是強制開啟嚴格模式的; 在 ES5 中使用嚴格模式需要設置 "use strict";
   *    1. 在嚴格模式下, 變量未聲明不能引用, 否則就會報錯 'ReferenceError' 。
   */
  // console.log('塊級作用域 -外- 循環(huán)外打印 index: ', index);
  // 打印結果:
  // Uncaught ReferenceError: index is not defined
}
test2()



// 與 ES5 對比
function test3() {
  for (var i = 1; i < 3; i++) {
    console.log(i);
  }
  console.log('循環(huán)外打印 -- 得到最終結果 i: ', i);
  // 打印結果:
  // 循環(huán)外打印 -- 得到最終結果 i:  3
}
test3()

2.2 使用 let 時, 不能重復聲明變量

// 使用 let 時, 不能重復聲明變量
function test4() {
  /**
   * 友情提示:
   * 1. 報錯: Error: Cannot find module "./class/1-let與const命令.js"
   *    1. 有可能是文件沒有編譯成功
   */
  let num = 1
  let num = 2
}
// test4()
// 執(zhí)行結果:
// 報錯: Error: Cannot find module "./class/1-let與const命令.js"

3. const 關鍵字

/**
 * const 關鍵字
 * 1. const 聲明一個 '常量' (注意: 是常量而不是變量)
 *    1. 常量的含義就是不能修改(不嚴謹)
 *    2. const 也是有塊級作用域的
 *    3. const 聲明的時候必須賦值
 */
function last1() {
  const num1 = 3.1415926
  console.log(num1);
}
last1()

3.1 const 聲明的常量不能修改(不嚴謹)

function last2() {
  const num2 = 3.1415926
  /**
   * 報錯:  SyntaxError: "num2" is read-only (意思就是說 'num2' 是一個只讀屬性, 不能修改)
   */
  // num2 = 3333
  // console.log('常量不能修改 num2 : ', num2);
  // 打印結果:
  // 報錯: Error: Cannot find module "./class/1-let與const命令.js"
}
last2()

3.2 const 聲明時必須賦值

function last3() {
  /**
   * 報錯: SyntaxError: Unexpected token (118:12) (意思是: 不完整)
   */
  const num3;
  // num3 = 3333 // 這里寫與不寫都會報相同的錯
  console.log('聲明時必須賦值 num3 : ', num3);
}
last3()

3.3 const 不能修改這一句是不嚴謹?shù)?/h4>
function last4() {
  const PI = 3.14
  const num4 = {
    newNum: 4444
  }

  // 對常量 num4 做一個修改
  num4.b = '修改常量: 增加一個值'
  num4.newNum = '修改常量: 常量對象中已有的值'

  /**
   * 這里的修改之所以成功, 是因為 num4 常量是一個對象, 對象是 '引用類型' (引用類型: 最后的返回值是對象存儲的內存中的指針)。
   * 也就是我們聲明的 num4 是指向這個對象的存儲的指針, 這個指針是不變的, 但是對象本身是可以變得 。
   */

  console.log('const 不能修改, 這一句是不嚴謹?shù)?num4 : ', PI, num4);
}
last4()

如果對你有所幫助谦去,喜歡的可以點個關注; 文章會持續(xù)打磨 。
有什么想要了解的前端知識嗎? 可以在評論區(qū)留言, 會及時跟進分享所相關內容 要糊。
整理知識點不易, 每次都是在工作繁忙之余夜深人靜之時整理, 無論知識點是大是小, 都會驗證后再分享, 以防自己發(fā)表的文章給大家造成誤導 妆丘。如有問題還望不吝賜教勺拣,本人會及時更改 (本文原創(chuàng), 如需轉載,請注明出處) 毅戈。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末苇经,一起剝皮案震驚了整個濱河市塑陵,隨后出現(xiàn)的幾起案子蜡励,更是在濱河造成了極大的恐慌,老刑警劉巖嫂沉,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件趟章,死亡現(xiàn)場離奇詭異蚓土,居然都是意外死亡赖淤,警方通過查閱死者的電腦和手機咱旱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門吐限,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诸典,“玉大人,你說我怎么就攤上這事赘阀』” “怎么了宋欺?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵酸休,是天一觀的道長祷杈。 經常有香客問我但汞,道長,這世上最難降的妖魔是什么胡桃? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任翠胰,我火速辦了婚禮之景,結果婚禮上闺兢,老公的妹妹穿的比我還像新娘戏罢。我一直安慰自己龟糕,他們只是感情好讲岁,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著看峻,像睡著了一般互妓。 火紅的嫁衣襯著肌膚如雪冯勉。 梳的紋絲不亂的頭發(fā)上灼狰,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天交胚,我揣著相機與錄音,去河邊找鬼挣轨。 笑死卷扮,一個胖子當著我的面吹牛晤锹,可吹牛的內容都是我干的鞭铆。 我是一名探鬼主播车遂,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼衣陶!你這毒婦竟也來了剪况?” 一聲冷哼從身側響起蒲跨,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎该贾,沒想到半個月后杨蛋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逞力,經...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡举庶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蕊唐。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖俗扇,靈堂內的尸體忽然破棺而出滞谢,到底是詐尸還是另有隱情狮杨,我是刑警寧澤橄教,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站盔夜,受9級特大地震影響返十,放射性物質發(fā)生泄漏椭微。R本人自食惡果不足惜洞坑,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蝇率。 院中可真熱鬧迟杂,春花似錦、人聲如沸瓢剿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽间狂。三九已至攻泼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鉴象,已是汗流浹背忙菠。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纺弊,地道東北人牛欢。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像淆游,于是被迫代替她去往敵國和親傍睹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353