es6块级作用域

2017-07-25  本文已影响0人  蓝色梦想家

var 声明
在函数作用域或全局作用域中通过var声明的遍历,不管是哪里声明的,都会当成当前作用域顶部声明的变量。(常说的提升机制)
var声明缺少块级作用域的概念。
举例说明:


Paste_Image.png

上面三个地方都可以访问value 值为undefined;

let声明
let声明的用法与var相同。用let代替var声明变量,可以吧变量的作用域限制在当前的代码块中。let没有提升机制,所以通常将let声明语句放在封闭代码块的顶部,以便代码块都可以访问;

Paste_Image.png

上面三处都不能访问value,只有在demo为真的时候才创建value 并赋值{}之外都不能访问。

let禁止重声明


Paste_Image.png

同一作用域不能用let重复定义已经存在的表示符。

const声明
使用const声明的是常量,值设定后不可更改。所以通过const声明的常量必须进行初始化
不初始化将报错


Paste_Image.png
 const声明与let最大的不同是const定义的常量不能重新赋值,否则会报错
Paste_Image.png

var 声明变量
var声明变量有

上一篇下一篇

猜你喜欢

热点阅读