ES2015中let的暂时性死区(TDZ)
Tomporal Dead Zone (TDZ)是ES2015中对作用域新的专用定义。是对于某些遇到在区块作用域绑定早于声明语句时的情况。Tomporal Dead Zone (TDZ)可以理解为时间上无法达到的区域,简称“时间死区”或者“暂时死区”。
请思考下面代码,结果会是神马?
1 console.log(a); 2 var a = 12;
如果你了解变量预编译过程,变量提升,那么很容易就会知道,这段代码相当于:
1 var a; 2 console.log(a);
因此,会输出undefined。
而在ES2016中,使用let命令,会产生什么样的结果:
1 alert(a); 2 let a = 5;
浏览器报错:ReferenceError: a is not defined
原因是,我们忽略了let暂时性死区
如下所示:
1 alert(a);//TDZ暂时性死区 2 let a = 5;//TDZ结束
其他影响,
对TDZ期间中的变量/常量作任何的访问动作,一律会抛出错误,需要注意:
typeof x // "undefined" {// TDZtypeof a // ReferenceErrorlet a = 12 }
转载于:https://www.cnblogs.com/liubeimeng/p/10687154.html
ES2015中let的暂时性死区(TDZ)相关推荐
- 【前端17_JS】ES 6:Let 、Const、对象冻结、解构赋值、暂时性死区 TDZ、惰性求值、模板字符串
ES 6 简介 let 声明变量 变量不提升 暂时性死区 TDZ const 静态变量 (常量*) 实质 引申 对象冻结 解构赋值 起步 ...arr 展开运算符 ...[] 数组拓展运算符 传参 找 ...
- 理解ES6中暂时性死区TDZ
什么是暂时性死区 ES6中,在代码块内,使用let/const命令声明变量之前,该变量都是不可用的,在变量声明之前属于该变量的"死区".这在语法上,称为"暂时性死区&qu ...
- 暂时性死区(TDZ)
常见js面试题之一: 提示:又是一道常见的前端面试题,什么是暂时性死区? 问题描述: console.log(a);var a = 1; 日志输出:undefined console.log(a);l ...
- 什么是暂时性死区(TDZ)?
常见js面试题之一: 提示:又是一道常见的前端面试题,什么是暂时性死区? 问题描述: console.log(a);var a = 1; 日志输出:undefined console.log(a);l ...
- JS:变量提升与临时性死区TDZ
一.解析过程 js运行前会有编译解析过程,有些错误会在编译过程中被发现. <body><script>var web = 'yooo';console.log(web);var ...
- let/const 的变量提升与暂时性死区
从一道面试题说起 请说出 let,const,var 的区别 大部分的回答是这样的,甚至很多博客中的答案也是这样的: let/const 提供了块级作用域 let 不能重复定义 var 有变量提升,l ...
- let暂时性死区理解
Let 中提到的暂时性死区到底是什么,它的产生原因是? ES6 规定,如果区块中存在 let 和 const 命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域.凡是在声明之前就使用这些变 ...
- 理解ES6中的TDZ(暂时性死区)
什么是TDZ Temporal Dead Zone(TDZ)是ES6(ES2015)中对作用域新的专用语义.TDZ名词并没有明确地写在ES6的标准文件中,一开始是出现在ES Discussion讨论区 ...
- 详解JS中的TDZ(暂时性死区)
TDZ(temporal dead zone)暂时性死区 来源: ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域.凡是在声明之前就使用 ...
最新文章
- 20年研发管理经验谈(五)
- scvmm live migration issue
- Markdown简单语法总结
- php 伪静态有什么用,网站为什么要做伪静态,做伪静态的好处是什么?
- 《TCP/IP详解》学习笔记(四):ICMP 协议、ping 和 Traceroute
- Android开发人员应该知道的一些技术
- 猪场管理网站php,某养猪场网站整站 v1.1
- Java 面向对象:构造器详解
- storm如何集成kafka
- Codeforces Round #219 (Div. 2) 解题报告
- stm32 JTAG和SWD的使用区别简要介绍
- java面试题学生表成绩表老师表_SQL经典学生老师成绩表面试题
- 阿里云资深技术专家杨皓然:Serverless 是正在发生的未来
- Android音乐播放器demo
- Python语音转文字、音频切割、语音识别
- 6个最值得Down的社交网络图标矢量素材集
- 拒绝纷繁复杂 快速制表软件分享
- 瑞昱rtl8168网卡支持Linux吗,我的集成网卡RTL8111/8168B终于搞定(非常感谢ubuntu中文论坛)...
- 使用Unity编写传统ARPG游戏人物操作方式(二)
- RHEL6 或CentOS 6配置共享存储--使用iSCSI
热门文章
- 苹果录屏功能没有声音_手机录屏没有声音如何处理?可以从这三个方面入手看看...
- 【历史上的今天】1 月 18 日:微软的“技术布道者”;反盗版法案抗议行动;哈佛 Mark I 灵感起源
- NGUI完美高性能无限滚动
- 计算机基础土星,2012年一级B笔试模拟343
- 【数字IC】深入浅出理解I2C协议
- mx250 计算能力_mx250显卡性能怎么样,mx250显卡性能相当于GTX多少
- 2020阿里招聘岗位要求
- numpy矩阵升维,拼接
- 文本识别综述 <软件学报_王建新等、中国图象图形学报_刘崇宇等>
- 直播APP开发成品案例