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 XML数据显示为HTML一例
Dec 23 Javascript
js获得当前时区夏令时发生和终止的时间代码
Feb 23 Javascript
jquery中 $.expr使用实例介绍
Jun 09 Javascript
使用javascript提交form表单方法汇总
Jun 25 Javascript
JavaScript图片轮播代码分享
Jul 31 Javascript
JavaScript 封装一个tab效果源码分享
Sep 15 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
Nov 20 Javascript
js实现简单排列组合的方法
Jan 27 Javascript
微信小程序实现轮播图效果
Sep 07 Javascript
vue组件发布到npm简单步骤
Nov 30 Javascript
js实现继承的方法及优缺点总结
May 08 Javascript
js瀑布流布局的实现
Jun 28 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程序员的技术瓶颈分析
2011/07/17 PHP
php header功能的使用
2013/10/28 PHP
php 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
jQuery的bind()方法使用详解
2015/07/15 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
react 父子组件之间通讯props
2018/09/08 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
微信小程序Flex布局用法深入浅出分析
2019/04/25 Javascript
js类的继承定义与用法分析
2019/06/21 Javascript
详解解决小程序中webview页面多层history返回问题
2019/08/20 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
python实现删除文件与目录的方法
2014/11/10 Python
Python实现图片转字符画的示例代码
2017/08/21 Python
对python中使用requests模块参数编码的不同处理方法
2018/05/18 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
人工神经网络算法知识点总结
2019/06/11 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
python求一个字符串的所有排列的实现方法
2020/02/04 Python
常用的10个Python实用小技巧
2020/08/10 Python
中国旅游网站:途牛旅游网
2019/09/29 全球购物
好的自荐信的要求
2013/10/30 职场文书
奥巴马演讲稿
2014/01/08 职场文书
精彩自我鉴定
2014/01/16 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
房屋出租协议书范本(标准版)
2014/09/24 职场文书
毕业论文致谢格式模板
2015/05/14 职场文书
汽车销售员工作总结
2015/08/12 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL