暂时性的死区(Temporal Dead Zone),简写为 TDZ:

只要块级作用域里存在let命令,它所声明的变量就绑定这个区域,不在受外部的影响

let 和 const 声明的变量不会被提升到作用域顶部,如果在声明之前访问这些变量,会导致报错:

   console.log(typeof value); // Uncaught ReferenceError: value is not definedlet value = 1;

复制代码这是因为 JavaScript 引擎在扫描代码发现变量声明时,要么将它们提升到作用域顶部(遇到 var 声明),要么将声明放在 TDZ 中(遇到 let 和 const 声明)。访问 TDZ 中的变量会触发运行时错误。只有执行过变量声明语句后,变量才会从 TDZ 中移出,然后方可访问。

function show(falg){                          // JavaScript引擎在扫描代码发现变量      TDZ暂时性死区(有let申明)
console.log(a);//报错: a is not defined               //a                                放入(未申明引用报错)       if(falg){//在第134行和第137行的大括号之间,let a="111";                                 //a="111"console.log(a); // 111                       //a                                移除(已申明引用移除)}else{console.log(a);//报错: a is not defined       //a                                放入(未申明引用报错)}}
show(true);
show(false);

转载于:https://www.cnblogs.com/missme-lina/p/10187996.html

ES6——TDZ(暂时性死区)相关推荐

  1. 理解ES6中暂时性死区TDZ

    什么是暂时性死区 ES6中,在代码块内,使用let/const命令声明变量之前,该变量都是不可用的,在变量声明之前属于该变量的"死区".这在语法上,称为"暂时性死区&qu ...

  2. 理解ES6中的TDZ(暂时性死区)

    什么是TDZ Temporal Dead Zone(TDZ)是ES6(ES2015)中对作用域新的专用语义.TDZ名词并没有明确地写在ES6的标准文件中,一开始是出现在ES Discussion讨论区 ...

  3. 详解JS中的TDZ(暂时性死区)

    TDZ(temporal dead zone)暂时性死区 来源: ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域.凡是在声明之前就使用 ...

  4. 理解JavaScriptES6中的TDZ(暂时性死区)

    什么是TDZ Temporal Dead Zone(TDZ)是ES6中对作用域新的专用语义.TDZ名词并没有明确地写在ES6的标准文件中,一开始是出现在ES Discussion讨论区中,是对于某些遇 ...

  5. ES2015中let的暂时性死区(TDZ)

    Tomporal Dead Zone (TDZ)是ES2015中对作用域新的专用定义.是对于某些遇到在区块作用域绑定早于声明语句时的情况.Tomporal Dead Zone (TDZ)可以理解为时间 ...

  6. let/const 的变量提升与暂时性死区

    从一道面试题说起 请说出 let,const,var 的区别 大部分的回答是这样的,甚至很多博客中的答案也是这样的: let/const 提供了块级作用域 let 不能重复定义 var 有变量提升,l ...

  7. js 详解es6 let TDZ(暂时性死区)

    暂时性死区产生的原因: ES6 明确规定,如果区块中存在 let 和 const 语句(注意:let.const语句不存在变量提升),这个区块对这些命令声明的变量,从一开始就形成了封闭作用域.凡是在声 ...

  8. ES6(一)——字面量的增强、解构、let/const、块级作用域、暂时性死区

    一.字面量的增强 ES6中对 对象字面量 进行了增强,称之为 Enhanced object literals(增强对象字面量). 字面量的增强主要包括下面几部分: 属性的简写:Property Sh ...

  9. 暂时性死区(TDZ)

    常见js面试题之一: 提示:又是一道常见的前端面试题,什么是暂时性死区? 问题描述: console.log(a);var a = 1; 日志输出:undefined console.log(a);l ...

最新文章

  1. kafka的topic和分区策略——log entry和消息id索引文件
  2. 修改时间服务器失败,电脑系统同步时间失败怎么办 修改时间服务器的方法。...
  3. Core-3399-JD4 六核高性能AI核心板
  4. SAP S4CRM和C4C的技术比较
  5. Android之Fatal Exception: org.greenrobot.greendao.DaoException: Could not init DAOConfig
  6. 【转】CT中的“层“与“排“的区别
  7. C++新特性探究(十六):move constructor移动构造
  8. android带动画的饼图,Android部分源码资源共享(视屏转GIF图片工具、仿抖音、仿朋友圈、仿红包、饼状图、引导图,图灵源码等)...
  9. 对三款软件的测评、分析和建议
  10. 美国电影超短200句(看英文原版电影很有用的!)(转)
  11. Vue学习日志之语法糖
  12. 冯诺依曼与哈佛结构的区别
  13. ZOOM——C++软件开发岗(实习)——视频面试一面
  14. 夜晚,我路过那座城市
  15. 开源逻辑分析仪nanoDLA,一起动手做一个吧!
  16. html5如何设置字号,如何设置css中字体大小?
  17. 到底啥是分布式系统开发经验?
  18. java人名识别_HanLP中人名识别分析
  19. 使用MP进行等值eq查询前,先判断这个值不为null再操作。然后添加多个排序条件
  20. 公司已经3个月发不出工资了。没有钱招不到人,老项目一堆烂摊子。

热门文章

  1. SDN和NFV并没有迅速落地的原因是什么?
  2. 演示4:python的币值转换-含tkinter
  3. 163music 反爬分析
  4. 微型计算机机箱配什么显卡,CPU显卡搭配建议
  5. 多波段 “均值标准距”的计算
  6. 阿里云Landing Zone系列--2 资源目录之--多账号
  7. 【模电】0014 运放自激振荡和消除(补偿)
  8. 巧用二重积分的积分中值定理
  9. Android吃鸡 3dtouch,绝地求生刺激战场3Dtouch怎么用 3Dtouch设置攻略
  10. Linux嵌入式开发必读推荐书籍