JavaScript面试题大汇总及详细答案.docxVIP

  • 2
  • 0
  • 约1.83万字
  • 约 23页
  • 2026-04-27 发布于河北
  • 举报

JavaScript面试题大汇总及详细答案

一、基础概念题(高频必考)

1.请解释JavaScript中的变量提升(Hoisting),并举例说明

问题解析:变量提升是JS引擎在执行代码前的预处理阶段,将变量声明和函数声明提升到当前作用域顶部的行为,注意仅提升声明,不提升赋值(函数表达式除外)。

详细答案:JS引擎执行代码时,会分为“预处理阶段”和“执行阶段”。在预处理阶段,会扫描当前作用域内的所有变量声明(var关键字声明)和函数声明(function关键字声明),将其提升到作用域的最顶部,而变量的赋值操作和函数表达式的定义不会被提升。

注意点1:var声明的变量会提升,let和const声明的变量不会提升(会存在暂时性死区);

注意点2:函数声明会完整提升(包括函数体),函数表达式(如varfn=function(){})仅提升变量fn,不提升函数体。

举例1:var声明的变量提升

javascript

console.log(a);//undefined(不是报错,因为a的声明被提升了,赋值未提升)

vara=10;

//等价于

vara;//提升后的声明

console.log(a);

a=10;

举例2:let/const无变量提升(暂时性死区)

javascript

console.log(b);//报错:Cannotaccess

文档评论(0)

1亿VIP精品文档

相关文档