春招前端笔试题目大全及答案
一、JavaScript核心基础(总分30分)
1.请简述`var`、`let`和`const`的主要区别。
答案:
作用域:`var`是函数作用域或全局作用域;`let`和`const`是块级作用域。
变量提升:`var`存在变量提升,声明前可访问,值为`undefined`;`let`和`const`不存在变量提升,存在暂时性死区,声明前访问会报错。
重复声明:`var`允许重复声明同名变量;`let`和`const`不允许重复声明。
赋值:`let`声明的变量可以重新赋值;`const`声明的常量一旦声明,值就不能重新赋值(引用类型对象的属性可修改)。
2.请解释JavaScript中的“闭包”是什么,并列举一个使用场景。
答案:
闭包是指有权访问另一个函数作用域中变量的函数。创建闭包的常见方式,就是在一个函数内部创建另一个函数。
场景:例如,在模块化开发中,利用闭包封装私有变量,防止全局变量污染;或者用于防抖、节流函数的实现。
3.请描述JavaScript的事件循环机制,并解释宏任务和微任务的区别。
答案:
JavaScript是单线程的,通过事件循环实现异步非阻塞。主线程执行同步代码,遇到异步任务将其放入任务队列。
微任务:包括`Promi
原创力文档

文档评论(0)