当前位置: 首页 > article >正文

面试总结:2024前端面试题

前几天写了一篇对面试官的吐槽,今天来总结一下最近面试的一些题目。题目不分具体公司了,毕竟题目的重复率不会特别高,就多做准备吧。

技术面还是离不开“八股文”,个人不喜欢也没办法,硬着头皮上,下面分几个模块来说吧,都是大厂里比较高频的。

一、原生js知识点

1、事件循环

概念都知道,用法也知道,但是面试官会把多个事件混用考察,多找个这方面的案例跑一下看看确认自己的思路就行。有个点:大家知道微任务优先级高,如果主线程或者微任务执行中,用户这时候点击,先执行哪个?(答案,点击没反应)诸如此类吧。

2、闭包

为什么溢出,答案:栈上只是存了一个指针,指针就是堆上对象的的地址;我们的程序通过这个指针句可以操作堆上的对象。栈上的这个指针是自动管理的,当函数退出后,就销毁了;这样程序就在没办法访问到堆上的这个对象了,而堆上的这个对象这个时候就会被我们的GC自动回收了;如果回收不了,就是内存泄漏了。

另外看看例子,有可能会让你写出来。

3、设计模式

有哪些设计模式,有什么应用场景,自己用到过哪些。可以跟前端框架联系看看,比如框架初始化:单例模式、页面data:工厂模式、双向绑定:发布订阅模式等。

4、ES6

箭头函数、instanceof、Proxy,都比较长问到,具体看其知识点吧,这块纯考学和记。

二、手写原生函数平替

篇幅原因就不写代码了,抛砖引玉

Promise、call、add、setTimeout实现setTnterval等

有些场景涉及优化实现,可能会写Promise.all等衍生代码,还有就是发布订阅模式等。

三、算法

这块我也简单列吧,算法太多了,很少有重复的:分饼干、分饼干、查中位数、排列组合等。总的来说贪心和动态规划的类型较多。算法这个东西就是得多做,否则没思路就是做不出来。

四、浏览器

1、缓存

强制缓存主要取决于两个字段 Expires 和 Cache-Control 中的 max-age 字段,他是一个相对值, 即客户端获取到这个文件多少秒后失效, 其判别权力全权交由浏览器, 这会相对更准确些。

协商缓存主要由 ETag 和 Last-Modified 两个字段来实现,通过上述两个字段就可以判断当前文件是否是最新的数据。

2、WebSocket和web workers的区别

WebSocket支持长链接,建立在TCP上维持双向通信,用来做即时通讯。

WebSocket可以创建后台线程,通过postmessage和onmessage进行通信,用来做性能优化。

3、web安全

CSRF、XSS、SQL注入、dos攻击、流量劫持等。

4、http/https

这块比较杂,涉及请求头内容、不同版本的区别、https的加密过程等。

5、其他

浏览器渲染、dom树、存储相关等,浏览器上的问题好多大厂都会问。

五、前端框架

1、vue和react的区别

我觉得这块除了“标准答案”上的几点(思想、响应原理、diff、组件写法、渲染过程、状态管理等),可能还要说下具体使用感觉上的不同。

2、vue2.0和3.0的区别

网上有标准答案:框架构建、双向绑定、生命周期、diff、tree-shaking、api、路由、模板指令等,基本都换了个遍。

3、关于vue3.0的优化点

vue3.0为什么用Proxy:绑定对象,有利于双向绑定; Composition API的好处:使组件具有生命周期,解决命名冲突等问题。 等等.....

4、组件通讯方式

父到子、子到父、全局,用过的都知道,直接说就行。

5、vue数据不更新的原因

涉及数组和对象的问题,常见的开发问题,这类问题完全是开发经验的体现了,能看出你平时是否经常用。

6、React Hooks

类组件:是基于 ES6中的 Class 写法,通过继承 React.Component 得来的 React 组件,有state状态和声明周期,但是不好复用。 函数组件:就是以函数的形态存在的 React 组件,内部无法定义和维护 state,因此它还有一个别名叫“无状态组件”,但是轻量灵活。 Hooks:为了让函数组件更有用,目标就是给函数组件加上状态(类组件通过HOC实现复用),有助于分离,但是依旧不是完美的,组件能力有限,需要在react函数顶层使用等。

7、webpack

打包原理、如何写plugin、优化等问题,相对都比较简单。

五、nodejs

1、洋葱模型

Koa的洋葱圈模型主要是通过Generator函数和Koa Context对象来实现的。

2、性能优化

这个主要是考察线程、纤程的概念,

3、开发过程相关

开发中有没有遇到什么问题,或者开发模式是怎样的,如果做过的话多少都知道点。

六、其他

1、项目经验

大部分的面试在自我介绍完后就开始问了,问你哪个项目做得比较好,这里需要注意的是你的描述要体现出两点,一个是项目的复杂度或者难点,一个是你自己起到的作用,其他的背景和过程啥的,就简单说明就好

2、性能优化

绝对的高频问题,一般来说有三个方面,一是打包构建,二是自己代码方面,三是浏览器或者服务端设置方面,看面试官想知道哪方面的吧。有时候他们会追问自己做了哪些实践,自己找个点叙述。

3、质量检测

现在越来越关注质量了,一般会问到项目中怎么做的质量,还有一些指标的对比,比如FP、FCP、FMP等。然后可以说说质量治理方面的成果啥的。

综上。

正常的八股问题,偶尔有特殊的点或者有的面试官问法有问题,但是题目都在一个圈子里,大家多准备就行。



喜欢的朋友记得点赞、收藏、关注哦!!!


http://www.kler.cn/a/585922.html

相关文章:

  • 【零基础入门unity游戏开发——unity3D篇】3D物理系统之 —— 3D碰撞器Collider
  • 微信小程序面试内容整理-常用组件
  • 12. Pandas :使用pandas读Excel文件的常用方法
  • CV:图像的直方图均衡化
  • ShineBlink学习日志
  • 【微知】plantuml在泳道图中如何将多个泳道框起来分组并且设置颜色?(box “浏览器“ #LightGreen endbox)
  • 【Quarkus】通过Quarkus集成后端服务示例
  • 【redis】zset 类型:基本命令(上)
  • 【网络通信安全】子专栏链接及简介
  • 【SpringMVC】常用注解:@RequestParam
  • 嵌入式硬件: GPIO与二极管基础知识详解
  • 【Java篇】一法不变,万象归一:方法封装与递归的思想之道
  • Opencv之掩码实现图片抠图
  • 全面剖析 Linux 进程管理与 PCB 机制
  • 编程自学指南:java程序设计开发,网络编程基础,TCP编程,UDP编程,HTTP客户端开发
  • 基于微信小程序的小区管理系统设计与实现【lw+源码+部署+视频+讲解】
  • 【树莓派Pico FreeRTOS编程】-FreeRTOS移植
  • 建筑管理(2): 施工承包模式,工程监理,质量监督
  • Java实现死锁
  • windows10 清理 C 盘