JavaScriptNode.jsWeChat大前端算法
前端核心面试八股文整理(含 JavaScript、Vue、React 等)
系统整理了前端开发面试的核心知识点,涵盖 JavaScript、CSS、HTML、React、Vue、算法、计算机网络、Node.js、TypeScript、性能优化、安全、小程序、ES6、编程题、设计模式及工程化等十六个模块。内容包含大量高频面试题,旨在帮助开发者梳理技术体系,理解底层原理与业务决策逻辑,适用于求职准备与技术复盘。
机器人16 浏览 前端核心面试八股文整理
一、JavaScript(323 题)
- 不会冒泡的事件有哪些?
- mouseEnter 和 mouseOver 有什么区别?
- MessageChannel 是什么,有什么使用场景?
- async、await 实现原理
- Proxy 能够监听到对象中的对象的引用吗?
- 如何让 var [a, b] = {a: 1,b:2}解构赋值成功?
- 下面代码会输出什么?
- 描述下列代码的执行结果
- 什么是作用域链?
- bind、call、apply 有什么区别?如何实现一个 bind?
二、CSS(61 题)
- css 中的 animation、transition、transform 有什么区别?
- 怎么做移动端的样式适配?
- 相邻的两个 inline-block 节点为什么会出现间隔,该如何解决?
- grid 网格布局是什么?
- CSS3 新增了哪些特性?
- 怎么使用 CSS3 实现动画?
- 怎么理解回流跟重绘?什么场景下会触发?
- 什么是响应式设计?响应式设计的吗?基本原理是什么?如何进行实现?
- 如果使用 CSS 提高页面性能?
- 如何实现单行/多行文本溢出的省略样式?
三、HTML(57 题)
- 什么是 DOM 和 BOM?
- 简单描述从输入网址到页面显示的过程
- 一台设备的 dpr,是否是可变的?
- 前端该如何选择图片的格式?
- 前端跨页面通信,你知道哪些方法?
- 说说你对 Dom 树的理解
- 行内元素有哪些?块级元素有哪些?空 (void) 元素有那些?
- html 和 css 中的图片加载与渲染规则是什么样的?
- title 与 h1 的区别、b 与 strong 的区别、i 与 em 的区别?
- script 标签为什么建议放在 body 标签的底部 (defer、async)
四、React(83 题)
- 下面代码中,点击'+3"按钮后,age 的值是什么?
- React Portals 有什么用?
- react 和 react-dom 是什么关系?
- React 中为什么不直接使用 requestIdleCallback?
- 为什么 react 需要 fiber 架构,而 Vue 却不需要?
- 子组件是一个 Portal,发生点击事件能冒泡到父组件吗?
- 说说 React render 方法的原理?在什么时候会被触发?
- 说说 React 事件和原生事件的执行顺序
- 说说对受控组件和非受控组件的理解,以及应用场景?
五、Vue(80 题)
- Vue 有了数据响应式,为何还要 diff?
- vue3 为什么不需要时间分片?
- vue3 为什么要引入 Composition API?
- 谈谈 Vue 事件机制,并手写$on、$off、$emit、$once
- computed 计算值为什么还可以依赖另外一个 computed 计算值?
- 说一下 vm.$set 原理
- 怎么在 Vue 中定义全局方法?
- Vue 中父组件怎么监听到子组件的生命周期?
- 说说 vue3 中的响应式设计原理
六、算法(19 题)
- 最大的钻石
- 举例说明你对尾递归的理解,以及有哪些应用场景
- 去除字符串中出现次数最少的字符,不改变原字符串的顺序。
- 请手写'快速排序'
- 洗牌算法
- 什么是尾调用优化和尾递归?
- 合并 K 个升序链表
- 什么是时间复杂度?
- 请手写'基数排序'