最近在學習尤達上面的一些Es6語法,記錄一下。
在 JavaScript 中聲明變量的唯一方式是使用關鍵字?var。
?本質上var在使用過程中有時候會帶來一些問題,在執行任何 JavaScript 代碼之前,所有變量都會被“提升”,也就是提升到函數作用域的頂部,這個時候var 聲明的函數本身就會被局限。
為什么會是undefiend?下面圖為你說明。
let 和 const
使用?let?和?const?聲明的變量解決了這種提升問題,因為它們的作用域是到塊,而不是函數。
之前,當你使用?var?時,變量要么為全局作用域,要么為本地作用域,也就是整個函數作用域。
如果在代碼塊(用花括號?{ }?表示)中使用?let?或?const?聲明變量,那么該變量會陷入暫時性死區,直到該變量的聲明被處理。這種行為會阻止變量被訪問,除非它們被聲明了。
關于使用 let 和 const 的規則
let?和?const?還有一些其他有趣特性。
使用?let?聲明的變量可以重新賦值,但是不能在同一作用域內重新聲明。
使用?const?聲明的變量必須賦初始值,但是不能在同一作用域內重新聲明,也無法重新賦值。
關于使用 let 和 const 的規則
let?和?const?還有一些其他有趣特性。
使用?let?聲明的變量可以重新賦值,但是不能在同一作用域內重新聲明。
使用?const?聲明的變量必須賦初始值,但是不能在同一作用域內重新聲明,也無法重新賦值。
何時應該使用?let?和?const?
法則如下:
當你打算為變量重新賦值時,使用?let,以及
當你不打算為變量重新賦值時,使用?const。
因為?const?是聲明變量最嚴格的方式,我們建議始終使用?const?聲明變量,因為這樣代碼更容易讀懂,你知道標識符在程序的整個生命周期內都不會改變。如果你發現你需要更新變量或更改變量,則回去將其從?const?切換成?let。