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相似,但其所声明的变量只在声明所在块内有效