var ,let,和 const 的區別

2021-10-24 08:36:47 字數 1549 閱讀 6140

1、 塊級作用域;

2、 不存在變數提公升;

3、 暫時性死區;

4、 不可重複宣告;

5、let ,const,宣告的全域性變數不會掛在頂層物件下面;

1、 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 使用場景:變數,用以替代var

2、 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...