今天向大家分享一下我自己的學習體會,如果不夠完整和有錯誤,希望大家指正。
1:let ,let在es6扮演者es5中var的角色,那麼它們有什麼不同嗎?答案是肯定的。
在介紹let和var的差別時,我們首先要清楚塊作用域的概念,那麼什麼又是塊作用域呢?
區分塊作用域最有效最快捷的方式就是“{}”:一對“{}”中就是一個塊作用域。
es6:
結果是:
這裡的function裡面是一個塊作用域,for裡面也是一個塊作用域。而在for作用域外輸出i明顯是不好使的,這裡顯示 not defined是因為es6預設打開了嚴格模式。
我們再來對比一下es5的寫法:
得到結果是:
上面我們清楚的看出了es6中let和es5中的var的第一個差別了:let的作用隻在作用域中有效。
我們既然說到第一個差別,當然就有第二個差別了。
第二個差別:let不能重複定義。
得到結果是:
提示我們a重複定義。我們來對比一下es5會不會報錯呢。
得到的結果是:
上面就是let和var的差別了。
2:const:在es6中const表示聲明一個常量。
需要注意的是:const在聲明的時候必須指派
const聲明的變量不能被修改,隻能讀取。
我們const聲明一下試試:
當我們這樣寫的時候就明顯看到報錯,所有我們也知道,const聲明的變量不能修改。
我們再來試着用const聲明一個對象。
得到結果是:
我們看到,是可以向const定義的對象在添加屬性的。這是因為對象是引用型,在const中存的是對象的位址,隻要對象的位址不變就是符合要求的。
今天的分享就到這裡了,如果有什麼錯誤和不足希望大家指正。