怪物奇妙物语

宇宙无敌超级美少男的怪物奇妙物语

首页 新随笔 联系 管理
  819 随笔 :: 0 文章 :: 2 评论 :: 16万 阅读

什么是 TDZ

Temporal Dead Zone(TDZ) 是 ES6(ES2015) 中对作用域新的专用语义。

let/const 和 var 的区别

es6之前

在 ES6 之前,JS 的 scope 只有两种,全局作用域和函数作用域,

es6之后

在 ES6 种出现了块级作用域,即使用 let/const 可以定义块级作用域

两个地方的区别

  1. let/const 是使用区块作用域;var 是使用函数作用域

  2. 在 let/const 声明之前就访问对应的变量与常量,会抛出 ReferenceError 错误;但在 var 声明之前就访问对应的变量,则会得到 undefined

console.log(Vname); // => undefined;
console.log(Lname); // => ReferenceError
var Vname = 'xiaoxiao';
let Lname = 'xiaoxiao';

暂时性死区

image
image

  1. ES6 明确规定,如果区块中存在 let 和 const 命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。 总之,在代码块内,使用 let 命令声明变量之前,该变量都是不可用的。这在语法上,称为 “暂时性死区”(temporal dead zone,简称 TDZ)。
posted on   超级无敌美少男战士  阅读(233)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示