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编程起步(第六课)
Feb 27 Javascript
Textarea根据内容自适应高度
Oct 28 Javascript
JavaScript中switch判断容易犯错的一个细节
Aug 27 Javascript
javascript正则表达式中的replace方法详解
Apr 20 Javascript
JavaScript之cookie技术详解
Nov 18 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
Feb 09 Javascript
webpack 1.x升级过程中的踩坑总结大全
Aug 09 Javascript
vue项目中用cdn优化的方法
Jan 03 Javascript
基于vue中css预加载使用sass的配置方式详解
Mar 13 Javascript
Vue项目history模式下微信分享爬坑总结
Mar 29 Javascript
微信小程序实用代码段(收藏版)
Dec 17 Javascript
Json实现传值到后台代码实例
Jun 30 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
上海永华YH-R296(华普R-96)12波段立体声收音机的分析和打理
2021/03/02 无线电
彻底删除thinkphp3.1案例blog标签的方法
2014/12/05 PHP
php保存信息到当前Session的方法
2015/03/16 PHP
Laravel中使用Queue的最基本操作教程
2017/12/27 PHP
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
基于JQuery的密码强度验证代码
2010/03/01 Javascript
JavaScript初学者建议:不要去管浏览器兼容
2014/02/04 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
php和js对数据库图片进行等比缩放示例
2014/04/28 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
Node.js下自定义错误类型详解
2016/10/17 Javascript
AngularJS入门教程之过滤器用法示例
2016/11/02 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
jquery插件bootstrapValidator表单验证详解
2016/12/15 Javascript
详解nodejs 文本操作模块-fs模块(二)
2016/12/22 NodeJs
js仿淘宝评价评分功能
2017/02/28 Javascript
vue使用Axios做ajax请求详解
2017/06/07 Javascript
element-ui 中的table的列隐藏问题解决
2018/08/24 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
微信小程序 自定义弹窗实现过程(附代码)
2019/12/05 Javascript
vue组件库的在线主题编辑器的实现思路
2020/04/03 Javascript
js实现列表按字母排序
2020/08/11 Javascript
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
2020/11/16 Javascript
利用Python进行异常值分析实例代码
2017/12/07 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
django迁移数据库错误问题解决
2019/07/29 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
Foreo国际站:Foreo International
2018/10/29 全球购物
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
护理实习自我鉴定
2013/12/14 职场文书
成龙洗发水广告词
2014/03/14 职场文书
班级文化建设标语
2014/06/23 职场文书
小学国旗下的演讲稿
2014/08/28 职场文书
音乐剧猫观后感
2015/06/04 职场文书