一,const和let
- 共同點:
- 都用著宣告;
- 都存在塊級作用域;
{
const a = '澎湃';
let b = 18;
// 塊級外不能訪問a和b
}
複製程式碼
- 不會變數宣告提升(var存在變數什麼提升);
- 同一作用域內,不允許重複宣告;
let a = '珺';
let a = 'pp';
// Uncaught SyntaxError: Identifier 'a' has already been declared
// 報錯,同一作用域內,不允許重複宣告;
複製程式碼
- 區別:
- const 宣告一個只讀的常量。一旦宣告,常量的值就不能改變(如果宣告是一個物件,那麼不能改變的是物件的引用地址)
- let通常宣告變數,可以改變;
二,與var
- var可以宣告變數和常量。而且沒有塊級作用域;
- 存在變數宣告提升;
console.log(a) // undefined
a = 18;
console.log(a) // 18
var a = 22;
console.log(a) // 22
// 上面其實就相當於下面
// js在執行中,會先預解析。將var的宣告提升到最先。
var a;
console.log(a) // undefined
a = 18;
console.log(a) // 18
a = 22;
console.log(a) // 22
// fun函式最優先提升到最前面,所以在fun(3,5)也可以執行並返回8。
// 但並不建議實際開發中這樣玩。
fun(3,5) //8
function fun(a,b){
return a + b;
}
複製程式碼