- 博客(205)
- 资源 (1)
- 收藏
- 关注
原创 前端面试宝典---项目难点2-智能问答对话框采用虚拟列表动态渲染可视区域元素(10万+条数据)
在我参与智能问答项目中一个智能体回话并不会像豆包一样,每次新建会话都是是从头开始,而项目中你想创建新会话就像chatbox一样,是点击橡皮擦开启新的聊天上下文,但是直接的聊天记录依然存在,针对超过十万+条对话数据进行展示。会出现页面卡死的问题。的形式展示我们的对话内容。
2025-07-12 18:05:56
266
原创 前端面试宝典---事件循环面试题
现代浏览器采用多进程架构,包含浏览器进程、渲染进程、网络进程等多个核心进程。每个标签页会独立创建一个渲染进程,负责页面内容的解析、渲染和执行脚本代码。
2025-06-11 22:06:23
624
原创 前端面试宝典---vite原理解析
如果:有metaData.json文件就说明之前以及预构建过了否则:扫描第三方依赖并对其进行预构建,并把每个第三方库变成ESM格式以及打成一个包vite 执行时所做的“依赖预构建”。
2025-06-04 10:56:35
408
原创 前端面试宝典---项目难点1-leaflet大数据量渲染优化
大数据量渲染性能优化,在地图上渲染2000个ECharts饼图,直接渲染会导致页面卡顿甚至崩溃。
2025-05-25 14:01:01
216
原创 前端面试宝典---实现call、apply 及 bind 函数
● 判断调用对象是否为函数,即使是定义在函数的原型上的,但是可能出现使用 call 等方式调用的情况。● 判断传入上下文对象是否存在,如果不存在,则设置为 window。● 处理传入的参数,截取第一个参数后的所有参数。● 将函数作为上下文对象的一个属性。● 使用上下文对象来调用这个方法,并保存返回结果。● 删除刚才新增的属性。● 返回结果。
2025-05-18 20:06:35
206
原创 前端面试宝典---js垃圾回收机制
垃圾回收是指一种自动内存管理机制,当声明一个变量时,会在内存中开辟一块内存空间用于存放这个变量。当这个变量被使用过后,可能再也不需要它了,此时垃圾回收器会自动检测并回收这些不再使用的内存空间。垃圾回收的主要目的是释放不再使用的内存,提高内存的使用效率,避免内存泄漏。
2025-05-14 23:37:49
515
原创 前端面试宝典---webpack面试题
plugin: 插件,主要是扩展webpack 的功能,在 webpack 的运行周期里,会有一些 hooks 对外暴露,所以在webpack 打包编译的过程中, plugin 会根据这些 hooks 执行一些自定义的操作,来实现对输出结果的干预的增强。webpack 没有 loader 的话,只能打包基础的 cjs的 js 文件,对于 css,静态资源 是无法实现打包的,这时候就需要引入 一些 loader 来进行文件的处理,更多的是,文件的。loader 更专注于 文件的转换,让输出资源的能力更丰富。
2025-05-12 23:27:09
742
原创 巧用promise.race实现nrm镜像源切换----nbsl
在复习Promise知识点时,发现Promise.race在实际开发中应用较少,于是深入思考了它的应用场景。最近使用nrm(npm镜像源切换工具)时,想到每次都需要手动切换镜像源来测试哪个更稳定。这引发了一个想法:是否可以通过一行命令,让系统自动选择最优的镜像源?这与Promise.race的设计初衷不谋而合。
2025-05-11 21:13:09
338
原创 前端面试宝典---JavaScript import ,import()与 Node.js require 的区别
import 是 ES6(ECMAScript 2015)模块系统的一部分,是 JavaScript 语言的标准语法require 是 CommonJS 规范的一部分,最初为 Node.js 环境设计。
2025-05-08 13:39:06
332
原创 前端面试宝典---性能优化
重绘是以图层为单位的,如果图层中某个元素需要重绘,那么整个图层都需要重绘。所以为了提高性能,我们应该让那些"变化的元素"单独作为一个图层。可以使用这个css属性单独开个图层。
2025-05-04 14:09:28
1173
原创 前端面试宝典---浏览器原理与网络知识(后续会更新网络安全相关的)
答案:最少启动了四个进程,分别是浏览器主进程渲染进程网络进程GPU进程读者可能会问如何查看呢:请看下图。
2025-05-03 12:36:55
632
原创 前端面试宝典---webpack原理解析,并有简化版源码
先看一下webpack打包后的bundle.js,前边的直接扫一眼就过,可以发现这个立即执行函数的形参就是一个,key为引入文件路径,value为该模块代码的函数。所以比较重要的就是通过webpack的配置文件中的entry的入口文件,递归去生成这个modules,并把代码中require变成__webpack_require__。
2025-05-01 15:52:56
940
原创 前端面试宝典---闭包
在 ES6 引入 let 和 const 之前,JavaScript 没有块级作用域,只有函数作用域。可以使用闭包来模拟块级作用域。
2025-04-14 21:57:46
285
原创 前端面试宝典---创建对象的配置
Object.create(原型,配置) => 对象 :用于基于指定原型和配置创建对象,可进行整个对象的多个配置。Object.defineProperty(对象,属性名,配置) :用于为一个对象的单个属性进行配置。
2025-04-10 22:34:05
438
原创 前端面试宝典---数据类型
undefined:当变量被声明但未赋值,或者函数没有返回值时,就会呈现 undefined 状态。null:null 代表一个空值,它是一个人为设定的空对象指针。number:该类型用于表示整数和浮点数。JavaScript 里没有专门区分整数和浮点数的类型。string:字符串是由零个或多个字符组成的序列,可使用单引号、双引号或者反引号来表示。symbol:这是 ES6 引入的新类型,symbol 是独一无二且不可变的数据类型,常被用作对象属性的键。BigInt。
2025-04-09 22:47:18
893
原创 告别网络依赖!Ollama×DeepSeek 打造的离线翻译神器,让多语言协作畅通无阻
本项目采用wxt+vue3+ts+less+element-plus+ollama+deepseek实现离线版浏览器翻译插件。
2025-03-22 09:36:35
286
原创 尚硅谷TS快速入门笔记(个人笔记用)
TypeScript 由微软开发,是基于 JavaScript 的⼀个扩展语⾔。TypeScript 包含了 JavaScript 的所有内容,即: TypeScript 是 JavaScrip t 的超集。![[|附件|/Typora 2025-01-07 11.53.14.png|200]]TypeScript 增加了:静态类型检查、接⼝、 泛型等很多现代开发特性,更适合⼤型项⽬ 的开发。
2025-03-10 21:04:10
988
原创 wxt框架浏览器样式污染与冲突的问题,三种方案,最后一种最有效!
最近公司有个项目要做浏览器扩展插件,我就在想有没有一种框架来方便我编写浏览器插件,果然功夫不负有心人发现了,它可以让我们按照vue或者react的方式编写浏览器插件。就在我吭哧吭哧开发的时候突然发现,中如果用elementPlus时竟然会影响到同样使用elemen-UI的页面。而且element-UI的样式同样会影响我们插件的样式。所以接下来的两天我就在调研解决这个问题,共尝试了三种解决方案。
2025-03-07 22:56:56
660
原创 nodejs携手python实现标书对比(防串标)
有一天领导让我去对比两个标书之间是否有重复或者极为相似的文本段落,我一看标书每个都是3000+页。看不完根本看不完,所以就萌生了用代码帮我查重的想法。到这里,作为一个程序员我该做些什么了!!!
2024-08-16 18:11:34
570
3
原创 ollama接口被nginx转发后出现403报错解决方法
请求ollama的服务接口,应该是有跨域的问题,所以在nginx转发时请求头中需要加入origin,并且origin还要和ollama接口同源(协议、ip、端口一致)。nginx需要设置请求时的origin请求头。nginx主要配置如下。
2024-06-30 19:58:38
6146
原创 巧用二进制实现俄罗斯方块小游戏
首先建立两个数组board、tetris用来存储当前已经堆积在棋盘的方块与正在下落的方块。这两个是一维数组当需要在页面画棋盘时就对其每一项转成二进制(看计算属性tetrisBoard),其中1(红色)0(白色)。判断是否可以下落:对board、tetris每一项 &(与操作),如果都为0则还可以下落,否则停止下落。判断是否触底:tetris的最后一项是否为0如果不为0则说明已经触底了: :对board、tetris每一项 &(与操作),如果都为0则还可以移动,否则停止移动。
2024-03-03 14:31:38
830
原创 对于随机生成图片接口浏览器走缓存的问题
有人可能会使用时间戳作为这个query,但是在v-for这个场景下是不实用的,因为v-for循环出来的是同一个时间戳(我已经试验过了),所以才采用的Math.random()
2024-01-20 22:55:21
842
原创 cytoscapejs获取被点击节点位置,并在该节点附近进行双击展示弹窗
【代码】cytoscapejs获取被点击节点位置,并在该节点附近进行双击展示弹窗。
2023-12-15 11:24:23
720
原创 vue子传父的一种新方法:this.$emit(‘input‘, value)可实现实时向父组件传值
今天要说的就是利用v-model和this.$emit(‘input’,value)实现子传父。众所周知,v-model是给input绑定,方便对表单的双向绑定。其实,v-model是个语法糖,具体案例如下所示。
2023-08-02 21:30:26
3704
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人