天天看點

es6入門基礎——let和const

今天向大家分享一下我自己的學習體會,如果不夠完整和有錯誤,希望大家指正。

1:let ,let在es6扮演者es5中var的角色,那麼它們有什麼不同嗎?答案是肯定的。

在介紹let和var的差別時,我們首先要清楚塊作用域的概念,那麼什麼又是塊作用域呢?

區分塊作用域最有效最快捷的方式就是“{}”:一對“{}”中就是一個塊作用域。

es6:

es6入門基礎——let和const

結果是:

es6入門基礎——let和const

這裡的function裡面是一個塊作用域,for裡面也是一個塊作用域。而在for作用域外輸出i明顯是不好使的,這裡顯示 not defined是因為es6預設打開了嚴格模式。

我們再來對比一下es5的寫法:

es6入門基礎——let和const

得到結果是:

es6入門基礎——let和const

上面我們清楚的看出了es6中let和es5中的var的第一個差別了:let的作用隻在作用域中有效。

我們既然說到第一個差別,當然就有第二個差別了。

第二個差別:let不能重複定義。

es6入門基礎——let和const

得到結果是:

es6入門基礎——let和const

提示我們a重複定義。我們來對比一下es5會不會報錯呢。

es6入門基礎——let和const

得到的結果是:

es6入門基礎——let和const

上面就是let和var的差別了。

2:const:在es6中const表示聲明一個常量。

需要注意的是:const在聲明的時候必須指派

const聲明的變量不能被修改,隻能讀取。

我們const聲明一下試試:

es6入門基礎——let和const
es6入門基礎——let和const

當我們這樣寫的時候就明顯看到報錯,所有我們也知道,const聲明的變量不能修改。

我們再來試着用const聲明一個對象。

es6入門基礎——let和const

得到結果是:

es6入門基礎——let和const

我們看到,是可以向const定義的對象在添加屬性的。這是因為對象是引用型,在const中存的是對象的位址,隻要對象的位址不變就是符合要求的。

今天的分享就到這裡了,如果有什麼錯誤和不足希望大家指正。