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 相关文章推荐
解决 FireFox 下[使用event很麻烦] 的问题.
Aug 22 Javascript
JavaScript表单常用验证集合
Jan 16 Javascript
表单提交前触发函数返回true表单才会提交
Mar 11 Javascript
js实现select组件的选择输入过滤代码
Oct 14 Javascript
AngularJS基础 ng-submit 指令简单示例
Aug 03 Javascript
Javascript中内建函数reduce的应用详解
Oct 20 Javascript
jQuery动态移除和添加背景图片的方法详解
Mar 07 Javascript
vue开发调试神器vue-devtools使用详解
Jul 13 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
Dec 16 jQuery
JS实现导航栏楼层特效
Jan 01 Javascript
JavaScript代码简化技巧实例解析
Sep 09 Javascript
HTML+VUE分页实现炫酷物联网大屏功能
May 27 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中this,self,parent的区别详解
2013/06/08 PHP
php生成html文件方法总结
2014/12/01 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
php实现图片以base64显示的方法
2016/10/13 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
jQuery过滤选择器:not()方法使用介绍
2014/04/20 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
2014/05/22 Javascript
JavaScript中实现最高效的数组乱序方法
2014/10/11 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
JavaScript中的this引用(推荐)
2016/08/05 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
vue 表单之通过v-model绑定单选按钮radio
2019/05/13 Javascript
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
2020/01/16 Javascript
Python 可爱的大小写
2008/09/06 Python
讲解Python中fileno()方法的使用
2015/05/24 Python
python实现判断数组是否包含指定元素的方法
2015/07/15 Python
Python将多个excel文件合并为一个文件
2018/01/03 Python
Python 支付整合开发包的实现
2019/01/23 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
2020/05/23 Python
python的help函数如何使用
2020/06/11 Python
html5触摸事件判断滑动方向的实现
2018/06/05 HTML / CSS
html5默认气泡修改的代码详解
2020/03/13 HTML / CSS
Lookfantastic法国官网:英国知名美妆购物网站
2017/10/28 全球购物
Dr. Martens马汀博士德国官网:马丁靴鼻祖
2019/12/26 全球购物
质量管理标语
2014/06/12 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
导游词300字
2015/02/13 职场文书
浅谈Python数学建模之线性规划
2021/06/23 Python
Valheim服务器 Mod修改安装教程 【ValheimPlus】
2022/12/24 Servers