ES6 let和var的區別是什麼?

qq_41387882發表於2018-09-03

1.首先大概說下什麼是ES6.

  以前開發多少都是ES5,其中它裡面包括很多特性,制定了許多語法規則。比如。解析規則,關鍵字,語法糖,閉包,繼承,原型等等

  而ES6簡單的講就是javaSeript的第6大版本,其中在ES5基礎上新加了許多新特性、比如:

  1.    箭頭函式 ()=>{}
  2.    字串插值
  3.    代理
  4.    生成器
  5.    .....

其中let和const則是ES6一個代表、與ES5中的var區別很對多,廢話不多說,開講

let和var區別:

相同點: 作用都是定義變數關鍵字

區別點:

  •  作用域只限制於當前程式碼塊{}   -----   var的作用域則是函式體function(){}
  •  使用let宣告變數的作用域不會提示  -----   而var會自動提升
  •  在相同的用作用域下不能有相同的變數,否則報錯  ------   而var中則可以出現相同變數名,且不會報錯。
  •  for迴圈提現父子作用域。

    比如以前ES5、在迴圈中找不到你的 i 值,則會上面找,這樣往往是不合邏輯的,解決辦法可以使用閉包完美解決    

    而ES6出現了let則不用閉包,他自帶有作用域的限制,這樣就能很好的滿足我們的邏輯了

let和const區別:

相同 :都是ES6新特性

  1. .作用定義變數關鍵字
  2. 作用域一樣
  3. 都不能重複宣告相同的變數

區別點:

  1. let是宣告普通變數  const是宣告常量
  2. let初始化可以不賦值。const初始化必須賦值
  3. let宣告的變數值可以被修改  const宣告的常量不能修改值。否則報錯(除物件。或者引用類以外)

 2、這三者各有各的的優點,在開發需要理解兩者區別,才能更好的簡單解決問題。運用他們。謝謝

相關文章