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 提升运行速度之循环篇 译文
Aug 15 Javascript
Javascript isArray 数组类型检测函数
Oct 08 Javascript
Javascript技巧之不要用for in语句对数组进行遍历
Oct 20 Javascript
Javscript删除数组中指定元素并返回新数组
Mar 06 Javascript
jquery JSON的解析方式示例介绍
Jul 27 Javascript
javacript使用break内层跳出外层循环分析
Jan 12 Javascript
jQuery Validation PlugIn的使用方法详解
Dec 18 Javascript
JAVA Web实时消息后台服务器推送技术---GoEasy
Nov 04 Javascript
ES6概念 Symbol toString()方法
Dec 25 Javascript
BootStrap便签页的简单应用
Jan 06 Javascript
js自定义Tab选项卡效果
Jun 05 Javascript
vue父组件中获取子组件中的数据(实例讲解)
Sep 27 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获取http请求的头信息实现步骤
2012/12/16 PHP
php读取文件内容到数组的方法
2015/03/16 PHP
php实现给一张图片加上水印效果
2016/01/02 PHP
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
js判断变量是否空值的代码
2008/10/26 Javascript
javascript 短路法代码精简
2009/08/20 Javascript
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
2013/03/27 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
jquery中交替点击事件的实现代码
2014/02/14 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
2016/03/02 Javascript
bootstrap导航条实现代码
2016/12/28 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
Vue 2.0入门基础知识之内部指令详解
2017/10/15 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
序列化模块json代码实例详解
2020/03/03 Javascript
python写日志封装类实例
2015/06/28 Python
tensorflow实现简单逻辑回归
2018/09/07 Python
python 异或加密字符串的实例
2018/10/14 Python
Python 写入训练日志文件并控制台输出解析
2019/08/13 Python
python绘制玫瑰的实现代码
2020/03/02 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
2020/05/10 Python
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
Sofmap官网:日本著名的数码电器专卖店
2017/05/19 全球购物
大学生求职简历的自我评价
2013/10/14 职场文书
在求职信中如何凸显个人优势
2013/10/30 职场文书
房地产销售员的自我评价分享
2013/12/04 职场文书
导游的职业规划书范文
2013/12/27 职场文书
大学生职业生涯设计书
2014/01/02 职场文书
保健品市场营销方案
2014/03/31 职场文书
介绍信的格式
2015/01/30 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
CSS 圆形进度栏
2021/04/06 HTML / CSS
在pyCharm中下载第三方库的方法
2021/04/18 Python
Python异常类型以及处理方法汇总
2021/06/05 Python