1、 塊級作用域;1、 const宣告之後必須馬上賦值,否則會報錯;2、 不存在變數提公升;
3、 暫時性死區;
4、 不可重複宣告;
5、let ,const,宣告的全域性變數不會掛在頂層物件下面;
2、 const簡單型別一旦宣告就不能更改,複雜的型別(陣列,物件)指標指向的位址不能更改,內部資料可以更改
#### 塊級作用域:
es5只有全域性作用域和函式作用域,沒有塊級作域;例子:
functionfn(
) console.
log(num)
;// 5 外層的num
}
變數提公升的現象:
// var 宣告的變數;
console.
log(num)
;// 輸出的結果為undefind
var num =
'柚子小哥哥'
// 使用let的宣告的變數
console.
log(op)
;報錯referenceerror
let op =
'hello world'
var tmp =
123;
// 宣告if(
true
)
function
func
(arg)
function
func
(arg)
}
var a = 1;
// 如果在 node環境,可以寫成 global.a
// 或者採用通用方法,寫成 this.a
window.a // 1
let b = 1;
window.b // undefined
let p;
var p1;
// 不報錯
const p3 =
'馬上賦值'
const p3;
// 報錯 沒有賦;
const num =
'不能改變'
num =
'報錯'
const p =
['不能改動'
]const p2 =p[0
]='不報錯'
p2.name =
'不報錯'
p =[
'報錯'
]p2 =
1、 let 使用場景:變數,用以替代var2、 const 使用場景:常量,宣告的匿名函式,箭頭函式
var let和const的區別
var let和const的區別 共同點特點 都是用來宣告變數的 var 可以變數提公升 可以重複宣告 沒有塊級作用域 let的特點 1 獨一無二的,不能重複宣告 2 不能變數提公升 3 是乙個塊級作用域if 內部可以訪問,外部不能 let可以解決列印的i值,常用於for迴圈中,也可以使用閉包。co...
var,let和const的區別
示例 下面展示一些 console.log a undefined 值不明確 var a 1 console.log b not defined 沒有定義 let b 2 console.log c cannot access 找不到 const c 3 下面 關於var的變數提公升 functio...
js中var let和const的區別
var 宣告變數,是函式作用域,能重複宣告覆蓋 let 需在js嚴格模式下使用,宣告塊級變數,不能重複宣告覆蓋,限制了變數的作用域,保證變數不會去汙染全域性變數。嚴格模式 在檔案頭新增 use strict use strict function console.log vartest 輸出 var...