ES6的變異
總體而言,使用 let 與 const 的變數宣告方式,相較於 var 會更為嚴謹,因此建議在開發 ES6 之後的專案,使用let 與 const 作為變數宣吿,除了讓專案更穩定之外,也可以增加程式碼的可讀性。
以下三點解釋:
- 區塊限制使用
- 變數「不」提升(hositing)
- 不允許重複宣告
案例1:let與const是用來宣告區塊裡的變數
*區塊是指程式碼{}的部分。
1 |
|
案例2:比較let與Var的差異
1 |
|
- var變數會向上提升,如果沒有命名變數也會顯示undefined,而let與const則不會
- 同個區塊不可重複命名
- 常數const: 裝入東西(值)之後就上鎖的盒子,之後不可以再更動裡面的值,const 是唯獨變數,不能被修改,當重要檔案不能被變更如url網址,就適合使用唯獨變數。但如果是在陣列[]或者物件{}內仍可以被變更
- 變數let: 暫時存放值的盒子,盒子是打開的,可以更動裡面的值
let與var的作用域:
作用域不一樣,var的作用域在函數 (function) 裡,let的作用域則是在區塊 (block) 裡。
全域變數:
在函式作用域(function scope)之外宣告的變數,全域變數在整個程式中都可以被存取與修改。
區域變數:
在函式作用域(function scope)內宣告,每次執行函式時,就會建立區域變數再予以摧毀,而且函式之外的所有程式碼都不能存取這個變數。
使用var宣告變數,可用範圍以function為界,function外讀不到值,但如使用區塊語句像if, else, for, while等等區塊語句時,宣告的區域變數仍然可在整段程式碼做存取,這並不是我們希望的結果,這時候就會建議使用let宣告。