let關鍵字和const關鍵字

gjsbhd發表於2020-11-10

let和constes6中新引入的關鍵字,用來變數宣告時使用,解決js中var關鍵字變數宣告的問題

var關鍵字變數宣告的問題

  • 汙染全域性變數,var關鍵字宣告的的變數可以覆蓋window物件身上原本有的屬性
  • 重複的變數宣告
  • 變數提升,奇怪的函式作用域

上面的問題是var關鍵字的硬傷,在實際開發中很容易帶來問題,因此才有了let和const
let關鍵字
let關鍵字解決了var關鍵字宣告的問題

  • 不會汙染window物件身上的屬性
		let console = 1
        window.console.log(window)

在這裡插入圖片描述在這裡插入圖片描述
window身上的console沒有被覆蓋,依然能夠正常列印

  • 不允許重複變數宣告
		let a = 1;
        let a = 2;

在這裡插入圖片描述

  • 解決了變數提升
    var關鍵宣告變數時,變數宣告會提升到當前作用域的最前面,而let關鍵字
		console.log(a)
        let a = 2;

在這裡插入圖片描述
看到這樣的結果你可以理解為let關鍵字宣告的變數不會變數提升,不過實際上它也會進行變數提示,只是將其放在了一塊名叫“暫時性死區”記憶體空間,只用在賦值之後才能夠進行訪問
const關鍵字
和let關鍵字類似,只是const宣告的變數是常量,宣告時必須初始化,並且不允許改變它的值。