1. 程式人生 > >關於var、let和const

關於var、let和const

不能 聲明 font enc 位置 支持 塊級作用域 reference error:

var/let/const都用來聲明變量,但各有區別。

技術分享

使用var會彈出“3”,可見在塊外,塊中定義的變量i仍然是可以訪問的。也就是說,使用var聲明變量是不支持塊級作用域,容易泄露成為全局變量。它只支持函數作用域,而且在一個函數中的任何位置定義的變量在該函數中的任何地方都是可見的。使用var可能會導致內層變量覆蓋外層變量。而let只在代碼塊內有效。

技術分享

用let將var替換後,會報錯Uncaught ReferenceError: i is not defined。

技術分享

使用var聲明變量,在執行前會進行預解析。而let不會,它所聲明的變量一定要在聲明後使用,否則報錯,並且let不允許在相同作用域內,重復聲明同一個變量。

//------------------------------關於const------------------

const聲明的變量不得改變值,這意味著,const一旦聲明變量,就必須立即初始化,不能留到以後賦值,即聲明不賦值,就會報錯。與let一樣在塊級作用域內有效,不會預加載。

關於let和const更多的講解可參見:http://es6.ruanyifeng.com/#docs/let

關於var、let和const