作用域-ES6

上一篇文章介绍JavaScript的作用域时我说JS中作用域有:全局作用域、函数作用域,没有块作用域。但是大神提醒,才知道其实现在JS已经有了块作用域的概念,ECMAScript 6(简称ES6)中新增了块级作用域。(这个事说明小白还是要多查新的资料)

可以简单理解:ECMAScript是JavaScript的语言规范,JavaScript是ECMAScript的实现和扩展。ECMAScript 6 简称ES6.

那就通过例子来说明JS中的块作用域:


总结:
1. var定义的变量,可以跨块作用域,不能跨函数作用域访问;
2. if语句和for语句属于块作用域,不属于函数作用域。

再看另一个例子,来区分var、let、const:



总结:
1. var定义的变量,可以跨块访问, 不能跨函数访问;
2. let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问;
3. const用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,也不能跨函数访问,且不能修改。

参考文章:hot_cool

你可能感兴趣的:(作用域-ES6)