js中let和var const的區別

2021-09-23 10:25:14 字數 1768 閱讀 1075

es6中增加了let關鍵字以定義塊級作用域的變數

1.var可以重複宣告,後面的會覆蓋前面的,let不允許重複宣告,會直接報錯

var a =10;

var a =20;

//20

console.

log(a)

;let b =10;

let b =20;

//identifier 'b' has already been declared

console.

log(b)

;

2.var存在變數提公升,let不存在變數提公升

console.

log(a)

;//undefined

var a =10;

console.

log(b)

;let b =20;

//b is not defined

3.let宣告的變數支援塊級作用域,var宣告的變數不支援塊級作用域

for

(var j =

0; j <

4; j++

) console.

log(

'j is '

+ j)

;//j is 4

for(

let i =

0; i <

4; i++

) console.

log(i)

;//i is not defined

用let宣告的關鍵字只在let關鍵字所在的**塊內有效,外部拿不到

4.var宣告的變數會繫結到window物件上,let不會

var a =10;

var sum =

100;

console.

log(window.a)

;//10

console.

log(window.sum)

;//100

let b =20;

const num =

666;

console.

log(window.b)

;//undefined

console.

log(window.num)

;//undefined

const用於宣告變數,const宣告的值不可改變,且在宣告的同時必須初始化,不初始化會報錯

const a =

100;

const b;

//宣告的時候不初始化會直接報錯

b =200;

//報錯

console.

log(a)

;//100

// console.log(b);

總結

1.var定義的變數會繫結到window上,let和const不會

2.var可以重複宣告變數,let和const若重複宣告會直接報錯

3.const宣告的同時必須初始化,不初始化直接報錯

4.let沒有變數提公升

5.let支援塊級作用域

6.const宣告的變數不可以被修改,但是變數裡面的屬性可以被修改,若想連屬性也不能被修改,需要用object.freeze(obj);凍結變數

var const和let的區別

var和let const區別 1 塊級作用域。2 不存在變數提公升。3 暫時性死區。4 不可重複宣告。5 let const宣告的全域性變數不會掛載頂層物件下面。const命令需要注意兩個注意點 1 const宣告之後必須馬上賦值,否則會報錯。2 const簡單型別一旦宣告就不能再更改,複雜型別 ...

es6中的let和var const的區別

通過var定義的變數,作用域是整個封閉函式,是全域的 通過let定義的變數,作用域是在塊級或是子塊中。console.log fun undefined var fun 2 console.log fun 2 var fun 45 不會報錯 let fun 46 會報錯 script 變數提公升現象...

JS中const var和let區別

今天遇到const定義的變數,查閱了相關資料整理了這篇文章。主要內容是 js中三種定義變數的方式const,var,let的區別。1.const定義的變數不可以修改,而且必須初始化。const b 2 正確 const b 錯誤,必須初始化 console.log 函式外const定義b b 有輸出...