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实现UTF8编码转换成gb2312编码
Dec 22 Javascript
js实现页面打印功能实例代码(附去页眉页脚功能代码)
Dec 15 Javascript
jQuery阻止冒泡和HTML默认操作
Nov 17 Javascript
javascript中String对象的slice()方法分析
Dec 20 Javascript
jQuery实现定时读取分析xml文件的方法
Jul 16 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
Oct 09 Javascript
JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)
Jun 12 Javascript
Require.js的基本用法详解
Jul 03 Javascript
认识less和webstrom的less配置方法
Aug 02 Javascript
vue的传参方式汇总和router使用技巧
May 22 Javascript
使用D3.js构建实时图形的示例代码
Aug 28 Javascript
vue使用vant中的checkbox实现全选功能
Nov 17 Vue.js
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基础教程 php内置函数实例教程
2012/08/21 PHP
Zend Studio 实用快捷键一览表(精心整理)
2013/08/10 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
2016/12/14 PHP
javascript 函数式编程
2007/08/16 Javascript
Prototype Selector对象学习
2009/07/23 Javascript
Google 静态地图API实现代码
2010/11/19 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
2014/08/22 Javascript
一款基jquery超炫的动画导航菜单可响应单击事件
2014/11/02 Javascript
javascript基本包装类型介绍
2015/04/10 Javascript
手机端实现Bootstrap简单图片轮播效果
2016/10/13 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
Vue.js计算属性computed与watch(5)
2016/12/09 Javascript
es6学习笔记之Async函数的使用示例
2017/05/11 Javascript
详解vue-router 路由元信息
2017/09/13 Javascript
AngularJS自定义表单验证功能实例详解
2018/08/24 Javascript
vue中使用codemirror的实例详解
2018/11/01 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
微信小程序控制台提示warning:Now you can provide attr "wx:key" for a "wx:for" to improve performance解决方法
2019/02/21 Javascript
微信小程序实现form表单本地储存数据
2019/06/27 Javascript
Python3模拟curl发送post请求操作示例
2019/05/03 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
Skyscanner澳大利亚:全球领先的旅游搜索网站
2018/03/24 全球购物
Fresh馥蕾诗英国官网:法国LVMH集团旗下高端天然护肤品牌
2018/11/01 全球购物
专业毕业生个性的自我评价
2013/10/03 职场文书
自荐信不宜过于夸大
2013/11/06 职场文书
经管应届生求职信
2013/11/17 职场文书
基层干部十八大感言
2014/01/19 职场文书
九年级科学教学反思
2014/01/29 职场文书
增员口号大全
2014/06/18 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
家长评语怎么写
2014/12/30 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
JS监听Esc 键触发事键
2021/04/14 Javascript
JavaScript如何优化逻辑判断代码详解
2021/06/08 Javascript
动作冒险《Hell Is Us》将采用虚幻5 消灭怪物探索王国
2022/04/13 其他游戏