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 相关文章推荐
jQuery easyui datagrid动态查询数据实例讲解
Feb 26 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
May 11 Javascript
jQuery实现新消息闪烁标题提示的方法
Mar 11 Javascript
js实现大转盘抽奖游戏实例
Jun 24 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
May 17 Javascript
Javascript中作用域的详细介绍
Oct 06 Javascript
vue实现条件判断动态绑定样式的方法
Sep 29 Javascript
JavaScript动态创建二维数组的方法示例
Feb 01 Javascript
vue中node_modules中第三方模块的修改使用详解
May 31 Javascript
在vue项目实现一个ctrl+f的搜索功能
Feb 28 Javascript
原生js实现弹窗消息动画
Nov 20 Javascript
vue中使用echarts的示例
Jan 03 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
咖啡与水的关系
2021/03/03 冲泡冲煮
解决Codeigniter不能上传rar和zip压缩包问题
2014/03/07 PHP
PHP数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
php简单实现sql防注入的方法
2016/04/22 PHP
PHP中静态变量的使用方法实例分析
2016/12/01 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
浅谈laravel框架与thinkPHP框架的区别
2019/10/23 PHP
21个JavaScript事件(Events)属性汇总
2014/12/02 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
2016/03/06 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
javascript 缓冲运动框架的实现
2017/09/29 Javascript
p5.js入门教程之键盘交互
2018/03/19 Javascript
详解Node使用Puppeteer完成一次复杂的爬虫
2018/04/18 Javascript
JavaScript之Blob对象类型的具体使用方法
2019/11/29 Javascript
详解ES6实现类的私有变量的几种写法
2021/02/10 Javascript
基于python(urlparse)模板的使用方法总结
2017/10/13 Python
在python中使用正则表达式查找可嵌套字符串组
2017/10/24 Python
python实现简单名片管理系统
2018/11/30 Python
Python读取csv文件分隔符设置方法
2019/01/14 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
Python3 执行Linux Bash命令的方法
2019/07/12 Python
用Python识别人脸,人种等各种信息
2019/07/15 Python
解决python 3 urllib 没有 urlencode 属性的问题
2019/08/22 Python
tensorflow对图像进行拼接的例子
2020/02/05 Python
使用python求解二次规划的问题
2020/02/29 Python
Python 在函数上添加包装器
2020/07/28 Python
以设计师精品品质提供快速时尚:Mostata
2019/05/10 全球购物
前台文员我鉴定
2014/01/12 职场文书
服装店营销方案
2014/03/10 职场文书
中国好声音华少广告词
2014/03/17 职场文书
工作证明格式范文
2015/06/15 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
《迟到》教学反思
2016/02/24 职场文书
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS