es6聲明變量不是必須初始化的。在es6中,利用關(guān)鍵字var和let聲明的變量是可以修改的,因此可以不初始化,此時(shí)變量會(huì)被系統(tǒng)默認(rèn)賦予一個(gè)初始值“undefined”;而利用關(guān)鍵字const聲明的變量不可以修改,是必須初始化的,否則會(huì)報(bào)錯(cuò)。
本教程操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。
ES5 只有兩種聲明變量的方法:var命令和function命令,而ES6添加了let和const命令。
其中利用關(guān)鍵字var和let來聲明變量,可以不初始化。
var a ; //undefined let b; //undefined
var和let定義的變量可以修改,如果不初始化,會(huì)被系統(tǒng)默認(rèn)賦予一個(gè)初始值“undefined”;會(huì)輸出undefined,不會(huì)報(bào)錯(cuò)。
而利用關(guān)鍵字const來聲明變量,是必須初始化。
字const聲明的變量是一個(gè)常量,定義時(shí)必須進(jìn)行初始化,且初始化后值不可再修改。
語法:
const 變量名=值; const 變量名1=值1,變量名2=值3,...,變量名n=值n;
注:常量與變量一樣均是用于存儲(chǔ)數(shù)據(jù)的容器,只不過常量的值在程序的運(yùn)行中不可以發(fā)生改變,否則運(yùn)行時(shí)會(huì)報(bào)錯(cuò)。
示例:
const a = 1; const b; //報(bào)錯(cuò),必須初始化
-
該變量是個(gè)全局變量,或者是模塊內(nèi)的全局變量
-
如果一個(gè)變量只有在聲明時(shí)才被賦值一次,永遠(yuǎn)不會(huì)在其它的代碼行里被重新賦值,那么應(yīng)該使用const,但是該變量的初始值有可能在未來會(huì)被調(diào)整(常變量)
-
創(chuàng)建一個(gè)只讀常量,在不同瀏覽器上表現(xiàn)為不可修改;建議申明后不修改;擁有塊級(jí)作用域
-
const 代表一個(gè)值的常量索引 ,也就是說,變量名字在內(nèi)存中的指針不能夠改變,但是指向這個(gè)變量的值可能 改變
-
const定義的變量不可修改,一般在require一個(gè)模塊的時(shí)候用或者定義一些全局常量
-
可以在全局作用域或者函數(shù)內(nèi)聲明常量,但是必須初始化常量
-
常量不能和它所在作用域內(nèi)其它變量或者函數(shù)擁有相同名稱
【