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 相关文章推荐
JavaScript版代码高亮
Jun 26 Javascript
js获得参数的getParameter使用示例
Feb 26 Javascript
JQuery 使用attr方法实现下拉列表选中
Oct 13 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
Oct 30 Javascript
javascript自定义in_array()函数实现方法
Aug 03 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
Sep 18 Javascript
Ext JS动态加载JavaScript创建窗体的方法
Jun 23 Javascript
React组件的三种写法总结
Jan 12 Javascript
vue2.0$nextTick监听数据渲染完成之后的回调函数方法
Sep 11 Javascript
浅谈React碰到v-if
Nov 04 Javascript
node 文件上传接口的转发的实现
Sep 23 Javascript
原生JavaScript实现幻灯片效果
Feb 19 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
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
PHP加密解密函数详解
2015/10/28 PHP
Linux平台php命令行程序处理管道数据的方法
2016/11/10 PHP
jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
2011/10/16 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
2015/10/26 Javascript
jQuery解析json数据实例分析
2015/11/24 Javascript
jQuery中Datatables增加跳转到指定页功能
2017/02/08 Javascript
JS实现图片点击后出现模态框效果
2017/05/03 Javascript
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
React中的refs的使用教程
2018/02/13 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
2018/07/04 Javascript
react 中父组件与子组件双向绑定问题
2019/05/20 Javascript
微信小程序图片自适应实现解析
2020/01/21 Javascript
js 闭包深入理解与实例分析
2020/03/19 Javascript
javascript绘制简单钟表效果
2020/04/07 Javascript
python 实现登录网页的操作方法
2018/05/11 Python
Django model select的多种用法详解
2019/07/16 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
加拿大约会网站:EliteSingles.ca
2018/01/12 全球购物
德国的各种媒体在线商店:Thalia.de(书籍、电子书、玩具等)
2020/10/08 全球购物
物业管理大学生个人的自我评价
2013/10/10 职场文书
工商企业管理专业自荐信范文
2014/04/12 职场文书
运动会加油口号
2014/06/07 职场文书
市场营销专业应届生自荐信
2014/06/19 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
2014年重阳节活动策划方案书
2014/09/16 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
2015年度企业工作总结
2015/05/21 职场文书
mysql查询的控制语句图文详解
2021/04/11 MySQL
Django给表单添加honeypot验证增加安全性
2021/05/06 Python
JavaScript 数组去重详解
2021/09/15 Javascript