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 禁用浏览器的后退功能的简单方法
Dec 10 Javascript
页面只有一个text的时候,回车自动submit的解决方法
Aug 12 Javascript
jQuery 拖动层(在可视区域范围内)
May 24 Javascript
javascript实现实时输出当前的时间
Apr 27 Javascript
jQuery滚动新闻实现代码
Jun 26 Javascript
js实现前端分页页码管理
Jan 06 Javascript
Bootstarp基本模版学习教程
Feb 01 Javascript
浅谈react.js中实现tab吸顶效果的问题
Sep 06 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
Oct 30 Javascript
JS判断用户用的哪个浏览器实例详解
Oct 09 Javascript
在vue和element-ui的table中实现分页复选功能
Dec 04 Javascript
在vue中获取wangeditor的html和text的操作
Oct 23 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封装分页函数实现文本分页和数字分页
2014/10/23 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
2017/03/16 PHP
ext实现完整的登录代码
2008/08/08 Javascript
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
2009/05/25 Javascript
textarea中的手动换行处理的jquery代码
2011/02/26 Javascript
使用jquery mobile做幻灯播放效果实现步骤
2013/01/04 Javascript
老生常谈JavaScript数组的用法
2016/06/10 Javascript
JavaScript中正则表达式判断匹配规则及常用方法
2017/08/03 Javascript
JQuery选中select组件被选中的值方法
2018/03/08 jQuery
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
JavaScript实现的开关灯泡点击切换特效示例
2019/07/08 Javascript
Vue 中可以定义组件模版的几种方式
2019/08/06 Javascript
解决vue项目,npm run build后,报路径错的问题
2020/08/13 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
[01:19:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第二局
2016/03/05 DOTA
Python自定义scrapy中间模块避免重复采集的方法
2015/04/07 Python
Python实现带参数与不带参数的多重继承示例
2018/01/30 Python
详解用TensorFlow实现逻辑回归算法
2018/05/02 Python
python 集合 并集、交集 Series list set 转换的实例
2018/05/29 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
2018/07/09 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
PyTorch搭建一维线性回归模型(二)
2019/05/22 Python
python基于SMTP协议发送邮件
2019/05/31 Python
如何通过Django使用本地css/js文件
2020/01/20 Python
Pycharm自动添加文件头注释和函数注释参数的方法
2020/10/23 Python
涂鸦板简单实现 Html5编写属于自己的画画板
2016/07/05 HTML / CSS
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
西班牙在线药店:DosFarma
2020/03/28 全球购物
英语感恩演讲稿
2014/01/14 职场文书
餐饮商业计划书范文
2014/04/29 职场文书
销售团队口号大全
2014/06/06 职场文书
LayUI+Shiro实现动态菜单并记住菜单收展的示例
2021/05/06 Javascript
pytorch 一行代码查看网络参数总量的实现
2021/05/12 Python
MySQL中一条update语句是如何执行的
2022/03/16 MySQL