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 相关文章推荐
js调用AJAX时Get和post的乱码解决方法
Jun 04 Javascript
jQuery中data()方法用法实例
Dec 27 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
Jun 05 Javascript
jQuery实现内容定时切换效果完整实例
Apr 06 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
Aug 25 Javascript
从零学习node.js之搭建http服务器(二)
Feb 21 Javascript
详解webpack解惑:require的五种用法
Jun 09 Javascript
用React实现一个完整的TodoList的示例代码
Oct 30 Javascript
微信小程序实现顶部下拉菜单栏
Nov 04 Javascript
微信小程序带动画弹窗组件使用方法详解
Nov 27 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
Sep 11 Javascript
详解Typescript 内置的模块导入兼容方式
May 31 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连接及读取和写入mysql数据库的常用代码
2014/08/11 PHP
php去除数组中重复数据
2014/11/18 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
2016/03/21 PHP
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
javascript:void(0)的问题使用探讨
2014/04/10 Javascript
JavaScript中的Web worker多线程API研究
2014/12/06 Javascript
jquery 动态增加删除行的简单实例(推荐)
2016/10/12 Javascript
纯js实现画一棵树的示例
2017/09/05 Javascript
Node.js 如何利用异步提升任务处理速度
2019/01/07 Javascript
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
Python实现字符串格式化输出的方法详解
2017/09/20 Python
python虚拟环境virtualenv的安装与使用
2017/09/21 Python
python opencv设置摄像头分辨率以及各个参数的方法
2018/04/02 Python
django允许外部访问的实例讲解
2018/05/14 Python
python微信公众号之关键词自动回复
2018/06/15 Python
python实现内存监控系统
2021/03/07 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
Python文件操作函数用法实例详解
2019/12/24 Python
Python GUI库PyQt5样式QSS子控件介绍
2020/02/25 Python
python如何实现图片压缩
2020/09/11 Python
python 牛顿法实现逻辑回归(Logistic Regression)
2020/10/15 Python
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
HTML里显示pdf、word、xls、ppt的方法示例
2020/04/14 HTML / CSS
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
党的群众路线教育实践活动宣传方案
2014/02/23 职场文书
国贸专业的职业规划书
2014/03/15 职场文书
演讲开场白和结束语
2015/05/29 职场文书
同乡会致辞
2015/07/30 职场文书
SpringBoot集成MongoDB实现文件上传的步骤
2022/04/18 MongoDB
A22国内电台短波广播频率表
2022/05/10 无线电