# [ES6] let、const變數 ###### tags: `ES6` ### 新增let、const變數宣告 ES6釋出let與const來解決使用Var變數命名會汙染到window全域變數的問題, * let與const是用來宣告區塊裡的變數,區塊是指程式碼{}的部分。 ``` <script> if(2>1){ let a =3 } </script> ``` #### 與Var差異觀念 * var變數會向上提升,如果沒有命名變數也會顯示undefined,而let與const則不會 * 同個區塊不可重複命名 ``` var a = 3; var a = 5; //結果會等於5 let a = 3; let a = 5; //結果顯示錯誤,因重複宣告變數 ``` * 常數const: 裝入東西(值)之後就上鎖的盒子,之後不可以再更動裡面的值,const 是唯獨變數,不能被修改,當重要檔案不能被變更如url網址,就適合使用唯獨變數。但如果是在陣列[]或者物件{}內仍可以被變更 * 變數let: 暫時存放值的盒子,盒子是打開的,可以更動裡面的值 <hr> ### let與var的差異: 作用域不一樣,var的作用域在函數 (function) 裡,let的作用域則是在區塊 (block) 裡。 我們必須知道JavaScript有兩個範圍:全域與區域。 * 全域變數:在函式作用域(function scope)之外宣告的變數,全域變數在整個程式中都可以被存取與修改。 * 區域變數:在函式作用域(function scope)內宣告,每次執行函式時,就會建立區域變數再予以摧毀,而且函式之外的所有程式碼都不能存取這個變數。 let、const是ES6之後加入的新成員,其作用的範圍跟var有些差異。 * let與const是區塊作用域(block scope) * var是函式作用域(function scope) 「使用var宣告變數,可用範圍以function為界,function外讀不到值」,但如果使用區塊語句像if, else, for, while等等區塊語句時,宣告的區域變數仍然可在整段程式碼做存取,這並不是我們希望的結果。這時候就會用到let。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up