在 ES5 中我们在声明时只有一种方法, 就是使用 var 来进行声明, ES6 对声明的进行了扩展, 现在可以有三种声明方式.
(1)var: 它是 variable 的简写, 可以理解成变量的意思.
(2)let: 它在英文中是 "让" 的意思, 也可以理解为一种声明的意思.
(3)const: 它在英文中也是常量的意思, 在 ES6 也是用来声明常量的, 常量你可以简单理解为不变的量.
1.var 声明
var 在 ES6 里是用来升级全局变量的, 也就是说, 在 ES6 中使用 var 是用来声明全局变量的.
- var a=2;
- {
- var a=3;
- }
- console.log(a);
这时打印出来的值是多少那? 对, 应该是 3, 因为 var 是全局声明的.
2.let 局部声明
与 var 向对应的是 let, 它是局部变量声明. 还是上面的例子, 我们试着在区块里用 let 声明.
- var a=2;
- {
- let a=3;
- }
- console.log(a);
这时候控制台打印出来的值就是 2 了. 如果我们只在区块里声明, 不再外部声明, 我们打印 a 时就会报错, 显示找不到变量.
- {
- let a=3;
- }
- console.log(a);// a is not defined
上述说明了 let 是局部变量声明, let 声明只在区块内起作用, 外部是不可以调用的.
2.1 用 let 声明的循环
你执行时会发现控制台报错了, 找不到循环体外的 i 变量. 通过两种声明的比较, 可以明白 let 在防止程序数据污染上还是很有用处的. 我们要努力去习惯用 let 声明, 减少 var 声明去污染全局空间.
3.const 声明常量
从声明开始, 这个变量始终不变, 就需要用 const 进行声明.
比如下面的代码:
- const a="我是常量";
- var a='我还可变';
- console.log(a);
在编译这段代码的过程中, 你就会发现已经报错, 无法编译了, 原因就是我们 const 声明的变量是不可以改变的.
来源: http://www.bubuko.com/infodetail-2868888.html