var隻能聲明一個變量,這個變量可以儲存任何資料類型的值
ES6之前并沒有定義聲明常量的方式,ES6标準引入的第三個聲明類關鍵詞與let類似:const,
使用const定義常量後,常量無法改變
1 const a=5;
2 a=2;
3 alert(a);
4 VM204:2 Uncaught TypeError: Assignment to constant variable.
5 at <anonymous>:2:2
看一下用法:
?
1 2 3 | |
?
1 2 | |
上面的例子說,不能在對c2進行指派,但是可以改變c2的内容,因為c2是個對象,看例子:
?
1 | |
同樣,也可以往c3中添加元素,因為c3是個數組。
const聲明常量還有個問題,就是聲明和初始化必須在一起,聲明了就要初始化:
?
1 2 3 | |
去掉分号仍然會報錯,我們這裡不讨論非strict mode下的情況,有興趣的可以自己去試。
const聲明的變量與let聲明的變量類似,它們的不同之處在于,const聲明的變量隻可以在聲明時指派,不可随意修改,否則會導緻SyntaxError(文法錯誤)。
?
1 2 3 4 | |
當然,規範設計的足夠明智,用const聲明變量後必須要指派,否則也抛出文法錯誤。
ES6中還新增了let關鍵字來聲明變量,作用與var相似,但其所聲明的變量隻在聲明所在塊内有效