前端面试题汇总

面试题汇总

js篇

1.js 的执行机制?微任务和宏任务?
  1. js 是单线程的

    所谓单线程就是一次只能执行一段代码,在执行的时候如果遇到比较耗时的操作,默认就会停下来等待这个操作完成之后继续走。这种情况下,就会出现页面卡在那里不动。为了解决这个问题 js 一般把比较耗时的操作做异步处理;

  2. js 中的异步处理

  • js 中存在一个异步队列,所有比较耗时的操作都会被丢在这个异步队列中。当主线程空闲(同步代码)之后会执行异步队列中的代码,这个就是 js 中的 eventloop(事件循环);

  • 宏任务,是运行环境提供的异步操作,例如:setTimeout;

  • 微任务,是 js 语言自身的异步操作,例如:Promise;

  • 在一个宏任务周期中会执行当前周期中的所有微任务,当所有的微任务都执行完成之后会进入下一个宏任务周期;

vue篇

1.封装axios拦截

axios拦截分为请求式拦截跟响应式拦截

  • request请求拦截器:发送请求前统一处理,如:设置请求头headers等。
  • response响应拦截器:有时候我们要根据响应的状态码来进行下一步操作
2.watch监听对象
  • vue3可以使用新的响应性api watch和watchEffect来替代该方法
  • 结合计算属性(computed)方法实现监听

webpack篇

用webpack干啥

1.Webpack的基本功能有哪些?
  • 代码转换:TypeScript 编译成 JavaScript、SCSS 编译成 CSS 等等

  • 文件优化:压缩 JavaScript、CSS、html 代码,压缩合并图片等

  • 代码分割:提取多个页面的公共代码、提取首屏不需要执行部分的代码让其异步加载

  • 模块合并:在采用模块化的项目有很多模块和文件,需要构建功能把模块分类合并成一个文件

  • 自动刷新:监听本地源代码的变化,自动构建,刷新浏览器

  • 代码校验:在代码被提交到仓库前需要检测代码是否符合规范,以及单元测试是否通过

  • 自动发布:更新完代码后,自动构建出线上发布代码并传输给发布系统。

style-loder 和 css哪个先

typescript篇

接口和type什么区别

react篇

react生命周期

nodejs篇

1.node中this和 js中this什么区别
2023年前端面试题汇总包括以下问题: 1. 请解释下什么是响应式设计(Responsive Design)? 响应式设计是一种设计和开发网站的方法,使其能够在不同设备上提供最佳的用户体验。通过使用媒体查询、弹性网格布局以及其他技术手段,网站可以根据设备的屏幕大小和特性自适应地调整布局和样式。 2. 谈谈你理解的盒模型(Box Model)? 盒模型是指在网页布局中,每个元素都被看作是一个矩形的盒子。它由内容区域(content)、内边距(padding)、边框(border)和外边距(margin)组成。这些部分共同决定了元素在页面中的尺寸、位置以及与其他元素之间的间距。 3. 解释一下什么是跨域(Cross-Origin Resource Sharing,CORS)? 跨域指的是在浏览器发送请求时,当前页面所在的域与该请求要访问的资源所在的域不一致。出于安全原因,浏览器会限制跨域请求。CORS 是一种机制,允许服务器在响应中设置一些头部信息,告诉浏览器该服务器允许哪些跨域请求。 4. 如何优化网页的加载性能? 有多种方法可以优化网页的加载性能,以下是一些常见的技术: - 使用浏览器缓存,减少对服务器的请求次数。 - 压缩和合并 CSS 和 JavaScript 文件,减小文件大小。 - 使用懒加载和延迟加载来延迟加载非关键资源。 - 优化图片,使用适当的格式和压缩算法。 - 使用 CDN(内容分发网络)来加速资源的加载。 - 减少 HTTP 请求次数,合并和内联文件。 - 优化服务器响应时间,减少网络延迟。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值