const和let一樣,也是ES6版本中引入的新關(guān)鍵字,下面我們就通過例子來簡單掌握J(rèn)avaScript中const關(guān)鍵詞聲明常量與變量的用法
ES6引入的第三個聲明類關(guān)鍵詞與let類似:const。
看一下用法:
const c1 = 1;
const c2 = {};
const c3 = [];
Object.getOwnPropertyDescriptor(window,"c1")
//Object {value: 1, writable: false, enumerable: true, configurable: false}
上面的例子說,不能在對c2進(jìn)行賦值,但是可以改變c2的內(nèi)容,因為c2是個對象,看例子:
c2.p1 = 1;
同樣,也可以往c3中添加元素,因為c3是個數(shù)組。
const聲明常量還有個問題,就是聲明和初始化必須在一起,聲明了就要初始化:
'use strict';
const c4;//Uncaught SyntaxError: Unexpected token ;
去掉分號仍然會報錯,我們這里不討論非strict mode下的情況,有興趣的可以自己去試。
const聲明的變量與let聲明的變量類似,它們的不同之處在于,const聲明的變量只可以在聲明時賦值,不可隨意修改,否則會導(dǎo)致SyntaxError(語法錯誤)。
const MAX_CAT_SIZE_KG = 3000; // 正確
MAX_CAT_SIZE_KG = 5000; // 語法錯誤(SyntaxError)
MAX_CAT_SIZE_KG++; // 雖然換了一種方式,但仍然會導(dǎo)致語法錯誤
當(dāng)然,規(guī)范設(shè)計的足夠明智,用const聲明變量后必須要賦值,否則也拋出語法錯誤。
const theFairest; // 依然是語法錯誤,你這個倒霉蛋