暂时性死区TDZ
临时死区(temporal dead zone)
简单理解就是在变量声明之前你是不能使用这个变量的,就相当于刚开学,你来到了一个新集体,虽然你知道你的班级里有XXX同学,、
但是你不认识他们,这时你总不能随便找个同学就说:"XXX同学,你好"。(你恐怕是来搞笑的吧!!!哈哈哈)
这也就是你不认识他之前你是不能随便乱叫人家名字的
同理就是在变量声明之前你是不能使用这个变量的
书本解释:
javascript引擎在扫描代码发现变量声明时,
(1)要么将他们提升至作用域顶部 例如:var声明的变量,
(2)要么将声明的放到TDZ中 例如:let 和 const 声明
(3)只有执行过变量声明语句后,变量才会从TDZ中移出,然后可以正常访问我的理解:
(1)在访问let和const声明的变量时,如果访问的位置是在声明之前,那么将访问失败。
LZ小知识:
(1)函数有两个作用域:一个是参数作用域,一个是函数体作用域
这个我觉得在平时的学习中应加以注意,本人觉得知道这点很有必要,希望能够帮助到你