ES6使用let命令更简单的实现块级作用域实例分析


Posted in Javascript onMarch 31, 2017

本文实例讲述了ES6使用let命令更简单的实现块级作用域。分享给大家供大家参考,具体如下:

let 带来了更简单的块级作用域

1. ES6新增了let命令,用于声明变量。其与var的不同在于,用let声明的变量只在 { } 内有效。这使得我们可以很方便的实现块级作用域,不再使用立即实行函数。

{
 let a=1;
 var b=2;
}
console.log(a); //undefined
console.log(b); //2

在for循环中使用let可以有效避免全局变量污染。

2. let不会变量提升。也就是说,如果你使用var ,可以先使用变量再定义变量(注意:变量提升只提升声明不提升赋值操作),但是如果你使用let定义变量则必须先定义后使用,否则会报错。

console.log(a);//报错:Uncaught ReferenceError: a is not defined
console.log(b); //undefined
let a=1;
var b=2;

3. 暂时性死区(Temporal Dead Zone)

只要块级作用域内有let,let 声明的变量不受全局同名变量的影响,如果想要在块级作用域内使用let 声明的变量,只能为其赋值。

var a=1;
if(true){
 a=2;
 let a; //Uncaught ReferenceError: a is not defined
}

4. 不允许在一个块级作用域内重复声明一个变量

不管是var与let重复声明,还是let与let重复声明,都会报错。

希望本文所述对大家ECMAScript程序设计有所帮助。

Javascript 相关文章推荐
加载jQuery后$冲突的解决办法
Jul 09 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
Aug 29 Javascript
常规表格多表头查询示例
Feb 21 Javascript
JavaScript深度复制(deep clone)的实现方法
Feb 19 Javascript
jQuery实现表格隔行及滑动,点击时变色的方法【测试可用】
Aug 20 Javascript
import与export在node.js中的使用详解
Sep 28 Javascript
微信小程序 Animation实现图片旋转动画示例
Aug 22 Javascript
webpack 3.X学习之多页面打包的方法
Sep 04 Javascript
js设置鼠标悬停改变背景色实现详解
Jun 26 Javascript
微信小程序canvas绘制圆角base64图片的实现
Aug 18 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
Jul 09 Javascript
JS实现页面炫酷的时钟特效示例
Aug 14 Javascript
JS解决移动web开发手机输入框弹出的问题
Mar 31 #Javascript
详解使用JS如何制作简单的ASCII图与单极图
Mar 31 #Javascript
Angularjs中使用指令绑定点击事件的方法
Mar 30 #Javascript
Angualrjs和bootstrap相结合实现数据表格table
Mar 30 #Javascript
微信小程序中顶部导航栏的实现代码
Mar 30 #Javascript
ES6中Proxy与Reflect实现重载(overload)的方法
Mar 30 #Javascript
vue分类筛选filter方法简单实例
Mar 30 #Javascript
You might like
php excel类 phpExcel使用方法介绍
2010/08/21 PHP
CodeIgniter中使用cookie的三种方式详解
2014/07/18 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
php使用fputcsv()函数csv文件读写数据的方法
2015/01/06 PHP
php curl 上传文件代码实例
2015/04/27 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
javascript引用对象的方法代码
2007/08/13 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
2012/04/15 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
微信小程序 MD5的方法详解及实例代码
2017/03/10 Javascript
详解Vue中过度动画效果应用
2017/05/25 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
关于vue v-for 循环问题(一行显示四个,每一行的最右边那个计算属性)
2018/09/04 Javascript
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
[54:26]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第一场 12.10
2020/12/12 DOTA
python实现合并两个数组的方法
2015/05/16 Python
使用Python写一个小游戏
2018/04/02 Python
Python数据结构之图的应用示例
2018/05/11 Python
Python运维之获取系统CPU信息的实现方法
2018/06/11 Python
150行python代码实现贪吃蛇游戏
2020/04/24 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
2020/10/27 Python
python 实现有道翻译功能
2021/02/26 Python
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
外贸英语专业求职信范文
2013/12/25 职场文书
高考励志标语
2014/06/05 职场文书
博士生专家推荐信
2015/03/25 职场文书
茶花女读书笔记
2015/06/29 职场文书
公司宣传语大全
2015/07/13 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
有关信念的名言语录集锦
2019/12/06 职场文书
CSS3实现的水平标题菜单
2021/04/14 HTML / CSS
TV动画《八十龟酱观察日记》第四季宣传PV公布
2022/04/06 日漫