前端面试-手撕题 1. 手撕实现防抖节流函数123456789101112131415161718/** * 防抖函数 n 秒后在执行该事件,若在 n 秒内被重复触发,则重新计时 * @param {Function} func - 要执行的函数 * @param {number} wait - 等待时间(毫秒) * @returns {Function} 2025-10-10
前端面试-TypeScript篇 1. TypeScript是什么?与js的区别?一、概念TypeScript 是 JavaScript 的超集,扩展了 JavaScript 的语法,支持ES6语法,支持面向对象编程的概念,如类、接口、继承、泛型等。其是一种静态类型检查的语言,提供了类型注解,在代码编译阶段就可以检查出数据类型的错误,ts在编译阶段需要转译成js来运行。 二、特性 类型批注和编译时的类型检查 类型推断:ts中没有批 2025-09-18
前端面试-场景题 1. Vue怎么实现权限管理?路由权限方案一:初始化即加载全部路由,并且在路由上添加上相应权限信息,每次路由跳转前做校验。 缺点: 加载所有路由,如果路由很多,而用户不是所有的权限,那么就会造成不必要的加载。 全局路由守卫里,每次路由跳转都要进行权限判断。 菜单信息写死在前端里,要改个权限信息,需要重新编译,适合角色固定的情况, 菜单和路由耦合在一起,定义路由的时候还要添加菜单显示标题,而且路由 2025-09-14
前端面试-VUE篇 1.虚拟dom渲染到页面上时,框架做了什么?虚拟DOM(Virtual DOM)是一种编程概念和内存中的数据结构,它使用JavaScript对象来表示和模拟真实DOM树的结构和状态。创建虚拟 DOM 目的就是为了更好将虚拟的节点渲染到页面视图中,虚拟 DOM 对象的节点与真实 DOM 的属性一一照应 虚拟DOM 渲染到页面时,前端框架会先创建或更新虚拟DOM 树,然后利用 Diff 算法 找出新旧 2025-09-03
前端面试-性能优化篇 1. 怎么实现大文件的上传? 分片上传(Chunked Upload):将大文件拆分成小的文件块(chunk),然后通过多个并行的请求依次上传这些文件块。服务器接收到每个文件块后进行存储,最后合并所有文件块以还原原始文件。这种方法可以降低单个请求的负载,并允许在网络中断或上传失败时可以从断点续传。 流式上传(Streaming Upload):客户端使用流方式逐步读取文件的内容,并将数据流通过 P 2025-09-03
前端面试-HTTP篇 1.websocket和http的区别使用场景对比HTTP HTTP(Hypertext Transfer Protocol)是一种应用层协议,最初设计用于在客户端和服务器之间传输超文本。它是一种无状态的协议,每个请求都是独立的,不保留前一次请求的状态信息。HTTP 通常用于传输网页、图片、文本等静态资源,以及通过 RESTful API 进行数据传输。 WebSocket WebSocket 2025-09-03
前端面试-js篇 1.js中的数据类型? number、string、boolean、null、undefined、object、symbol(symbol 是 ES6 新增的数据类型,用于创建唯一标识符。)、bigint 引用数据类型: 对象Object(包含普通对象-Object,数组对象-Array,正则对象-RegExp,日期对象-Date,数学函数-Math,函数对象-Function) 2. 0.1 2025-08-30
前端面试-CSS篇 1.让一个元素水平垂直居中的方案? 2.说说对盒子模型的理解? 一个盒子由四个部分组成:content、padding、border、margin 标准盒模型: 盒子总宽度 = width + padding + border + margin; 盒子总高度 = height + padding + border + margin IE怪异盒模型: 盒子总宽度 &# 2025-08-26
前端面试-HTML篇 1. 什么是DOM和BOM? DOM (Document Object Model): DOM是表示HTML和XML文档的标准的对象模型。它将文档中的每个组件都看作一个对象,可以用js操控DOM去动态改变 元素 结构 样式。 DOM 以树状结构组织文档的内容,其中树的根节点是 document 对象,代表整个文档。对象有各种方法和属性,可以用来访问和修改文档的内容和结构。 BOM (Brows 2025-08-23 前端面试