"JavaScript 43 道面试题及答案.docx:理解变量提升和暂时死区"

需积分: 0 0 下载量 111 浏览量 更新于2024-03-13 收藏 25KB DOCX 举报
JavaScript 43 道面试题及答案.docx" 是一份包含了 43 道 JavaScript 面试题以及它们的答案的文档。其中的一道题目是关于下面代码的输出是什么: ```javascript function sayHi(){ console.log(name); console.log(age); var name ="Lydia"; let age=21; } sayHi(); ``` 选项有: A: Lydia 和 undefined B: Lydia 和 ReferenceError C: ReferenceError 和 21 D: undefined 和 ReferenceError 正确答案是D。这道题目主要考察了 JavaScript 中变量提升和暂时性死区的知识。在函数中,首先使用 var 关键字声明了 name 变量。这意味着变量在创建阶段会被提升,即 JavaScript 会在创建变量时为其分配内存空间,并且默认值为 undefined,直到实际执行到使用该变量的行。因此,在这个函数中,console.log(name) 会输出 undefined。接下来,使用 let 关键字声明了 age 变量。与 var 不同,使用 let 关键字声明的变量在声明(初始化)之前是不可访问的,这被称为“暂时性死区”。在这个函数中,当我们尝试访问变量之前,JavaScript 会抛出一个 ReferenceError。因此,console.log(age) 会输出 ReferenceError。 通过这道题目,我们可以看到对于 JavaScript 的变量提升和暂时性死区的了解是非常重要的。同时,这份"JavaScript 43 道面试题及答案.docx" 文档也提供了其他相关的面试题以及它们的答案,对于想要加深对 JavaScript 知识的人来说是一份非常有价值的资料。