- 博客(79)
- 收藏
- 关注
原创 2025年03月18日柯莱特(外包宁德)一面前端面试
Webpack 插件是基于事件流机制实现的,其核心是借助钩子(Hooks)来达成。Webpack 在构建流程的不同阶段会触发不同的钩子,插件可以在这些钩子上挂载自己的逻辑,进而在特定的构建阶段执行自定义操作。下面是一个自定义 Webpack 插件的示例代码,此插件会在构建完成后输出构建信息。// 接收插件配置选项// 监听 'done' 钩子,该钩子在构建完成后触发console.log('构建完成!');console.log('输出路径:', outputPath);
2025-03-22 21:39:02
774
原创 2025年01月13日字节(本地生活)前端面试
在面试中回答这个问题时,可以结合实际的项目经验,例如:“在我之前的项目中,使用 Vite 开发一个 Vue 3 项目,开发服务器的启动速度非常快,几乎是瞬间完成,而之前使用 Webpack 时,启动时间会随着项目规模的增加而显著增加。综上所述,Vite 在开发时的启动速度、HMR 性能、配置的简洁性、对现代前端框架的支持、插件生态的易用性以及对 TypeScript 的支持等方面都有一定的优势,尤其是对于开发体验和开发效率有更高要求的项目,Vite 是一个很好的选择。同时进行预加载扫描,查找外部资源引用。
2025-03-22 21:34:05
1064
原创 2025年01月02日浙江鼎永前端面试
特性WebpackVite工作原理完整打包,解析依赖,编译代码按需编译,即时加载,利用浏览器原生 ESM启动时间较长,尤其是大型项目非常快,通常只需几百毫秒热更新 (HMR)局部更新,但需要重新打包更高效,不刷新页面,快速更新模块配置复杂度复杂,需要详细配置简单,默认配置已足够适用场景复杂项目,需要高度定制化快速开发,中小型项目,追求极致开发体验生态系统成熟,插件丰富相对较小,但发展迅速。
2025-03-22 21:28:09
726
原创 2025年03月10日人慧前端面试(外包滴滴)
在 JavaScript 中,普通函数和箭头函数是两种不同的定义函数的方式,它们存在多方面的区别,下面为你详细介绍:箭头函数:使用箭头 来定义,语法更加简洁。当只有一个参数时,可以省略括号;当函数体只有一条语句时,可以省略花括号和 关键字。2. 指向普通函数: 的值取决于函数的调用方式,它可以是全局对象(在非严格模式下)、函数本身(使用 、 或 方法时)、对象实例(当函数作为对象的方法调用时)等。箭头函数: 的值继承自外层函数(即定义时的上下文),不会根据调用方式改变。3
2025-03-22 15:30:05
1120
原创 2025年01月08日慧能科技前端面试
设计模式即 Software Design Pattern,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。原型链是JavaScript实现继承的主要方式。每个对象都有一个内部属性(可以通过__proto__访问),指向其原型对象。当查找一个对象的属性时,如果对象本身没有这个属性,就会沿着原型链向上查找。闭包是指一个函数能够访问并记住其词法作用域中的变量,即使该函数在其原始作用域之外执行时也是如此。
2025-02-04 16:04:46
1126
原创 2024React面试精选——持续更新
state:组件内部的状态,可变,局部。props:组件之间的数据传递,不可变,全局。理解state和props的区别和使用场景,有助于编写更清晰、更高效的 React 应用。高阶组件是一个函数,它接受一个组件作为参数,并返回一个新的组件。这个新的组件通常会添加一些额外的逻辑或属性。高阶组件是 React 中一种强大的设计模式,可以帮助开发者复用组件逻辑,提升代码的可维护性和可读性。通过合理使用高阶组件,可以有效地管理组件的复杂性,提高开发效率。受控组件。
2024-11-12 13:19:40
779
原创 chrome浏览器怎么开启高性能模式
你在使用windows电脑的时候,运行web端的3d程序的时候是不是会卡顿,有可能是没有开启硬件加速。而且会导致3D程序中一些细节的渲染效果会花掉,例如阴影、雾、灯光等,会出现块状或者条状的显示问题。第五步选中chrome,选择浏览,设置高性能,保存,重启chrome浏览器即可。然后打开任务管理器,你的gpu1的资源占用率就高了,gpu0资源占用率就低了。然后全局搜索GPU关键词,找到所有带GPU的列表数据,选择enabled。第四步点击浏览,找到你的chrome的启动文件,选中并添加。
2023-03-06 12:51:42
14477
1
原创 20210322某教育公司前端总结
目录怎么判断一个对象是空对象ts的作用数组去重数组有哪些方法讲下你印象比较深刻的项目你在团队的角色是怎么样的onload和script执行顺序等分布局什么是ssr什么是pwa1. 怎么判断一个对象是空对象将json对象转化为json字符串,再判断该字符串是否为"{}"var data = {};var b = (JSON.stringify(data) == "{}");console.log(b) // falsefor in 循环判断var obj = {
2021-12-18 14:32:03
992
1
原创 20210330某农业公司前端面试总结
目录快速排序你怎么带人的说一下从url输入到返回请求的过程let、var、const的区别深拷贝的实现cookie和storage的区别compose函数的实现性能优化统计字符串个数Vue和react的区别1. 快速排序const quickSort = (arr) => { let length = arr.length; if (length < 2) { return arr; } else { // 选择标尺元素 let l
2021-04-20 21:07:13
692
1
原创 20210308某区块链公司前端面试总结
目录讲下数组的一些方法跨域的处理方式讲下你最近的项目setState到底是异步还是同步讲下hooks讲下react的性能优化前端的通信方式讲下webpack的构建流程1. 讲下数组的一些方法比如:concat,fill,filter,map,pop,push,shift,slice,some,sort,includes等。2. 跨域的处理方式跨域主要分3部分:协议相同域名相同端口相同只要有一个不同,那么就是跨域 // 地址 http://www.baidu.
2021-04-20 07:47:40
1342
原创 20210226某体育公司前端面试总结
目录讲下react生命周期js的数据类型什么是闭包Vue和react的区别性能优化输入URL到页面渲染的整个流程如何处理跨域问题谈谈你对原型链的理解重排和重绘你做过一些什么基础的搭建项目中最难的问题是什么HTTPS是如何保证安全的你怎么带实习生的你遇到的最难的技术问题是什么后端设置cors,跨域后,前端怎么设置,后端可以拿到cookie谈一下你对js运行机制的理解浏览器渲染机制前端怎么实现微信的授权diff算法原理讲下hooks的使用讲下reactNative
2021-04-12 21:59:52
441
原创 20210325某金融公司前端面试总结
目录大数相加手写讲下你最近的项目如何做性能优化如何⽤webpack来优化前端性能1. 大数相加手写JS在存放整数的时候是有一个安全范围的,一旦数字超过这个范围便会损失精度。我们不能拿精度损失的数字进行运行,因为运算结果一样是会损失精度的。所以,我们要用字符串来表示数据!(不会丢失精度)方案1:let a = "9007199254740991";let b = "1234567899999999999";function add(a, b) { // 取两个数字的最大长度
2021-03-30 11:06:50
2192
1
原创 20210329某直播公司前端面试总结
目录cookie的处理流程说一下从url输入到返回请求的过程说下数组去重的几种方式ts中interface可以继承吗ts中interface可以写多个吗ts的泛型有什么作用new的原理是什么防抖和节流的区别是什么?防抖和节流的实现发布订阅模式hash路由和history路由如何正确的判断this跨域的处理方式类型检测的几种方式项目中为何使用json化配置React的生命周期setState到底是异步还是同步promise all和rase有什么区别useRef虚拟列表
2021-03-30 09:42:51
1265
原创 2021JavaScript面试精选——持续更新
目录闭包是什么闭包的作⽤js有哪些数据类型你有哪些方式检测数据类型编写一个万能数据类型检测方法讲下instanceof原理手写instanceof为什么会有BigInt的提案null与undefined的区别是什么谈谈你对原型链的理解如何判断是否是数组谈⼀谈你对this的了解async/await是什么async/await相⽐于Promise的优势简单介绍一下V8引擎的垃圾回收机制哪些操作会造成内存泄漏如何实现深拷贝手写AJAX移动端的点击事件的有延迟,时间是多久,
2021-03-28 15:34:17
382
原创 2021前端工程化面试精选——持续更新
目录Babel的原理是什么谈谈你对前端监控的理解谈一下你对前端工程化的理解1. Babel的原理是什么babel的转译过程也分为三个阶段,这三步具体是:解析Parse:将代码解析⽣成抽象语法树(即AST),即词法分析与语法分析的过程转换Transform:对于AST进⾏变换⼀系列的操作,babel接受得到AST并通过babel-traverse对其进⾏遍历,在此过程中进⾏添加、更新及移除等操作⽣成Generate:将变换后的AST再转换为JS代码,使⽤到的模块是babel-genera
2021-03-28 15:32:55
420
1
原创 20210224某创业公司前端面试总结
目录怎么看nodejs可支持高并发前端怎么处理文本编辑、计算,类似excel1. 怎么看nodejs可支持高并发nodejs的单线程架构模型nodejs其实并不是真正的单线程架构,因为nodejs还有I/O线程存在(网络I/O、磁盘I/O),这些I/O线程是由更底层的libuv处理,这部分线程对于开发者来说是透明的。JavaScript 代码永远运行在V8上,是单线程的。所以从开发者的角度上来看 nodejs 是单线程的。来张网图:注意看图的右边有个Event Loop,接下来要讲的重
2021-03-28 12:27:07
328
原创 20210222某相亲公司前端面试总结
目录讲下你最近的项目开发中你最有成就感的事情1. 讲下你最近的项目我最近一个项目是一个金融的交易系统。项目团队前端10人,后端50多人。前端技术栈是多技术栈,新版本用的是React,老版本用的是Jquery。在团队中我是主力开发,主要是负责项目的组件开发,还有交易的业务开发。项目中采用的是一个类似low coding的解决方案。因为,我们需求变化不大,所以这样的一个解决方案,会提高开发效率,也会减少bug率,而且后期维护,也会方便很多。2. 开发中你最有成就感的事情2019年下半年,2020
2021-03-27 21:46:29
195
原创 20210309某建筑集团公司前端面试总结
目录讲下你会的几种排序算法讲下冒泡排序的实现能不能对冒泡排序进行优化讲下快速排序实现能不能对快速排序进行优化React的生命周期作用讲下HTTP1.0和HTTP1.1有什么区别为什么有了HTTP为什么还要HTTPSHTTPS是如何保证安全的组件通信的方式讲下讲下redux的⼯作流程讲下性能优化网页输入url出现的效果讲下webpack的配置说下js的继承讲下1. 讲下排序算法冒泡排序,选择排序,插入排序,希尔排序,快速排序,归并排序,堆排序等。2. 讲下冒泡排序的实现
2021-03-20 20:19:55
233
原创 20210310某外包公司前端面试总结
目录vue中,watch、methods、computed有什么区别v-if和v-show有什么区别组件是怎么封装的讲下前端工程化1. vue中,watch、methods、computed有什么区别computer当页面中有某些数据依赖其他数据进行变动的时候,可以使用计算属性。<p id="app">{{fullName}}</p><script> var vm = new Vue({ el: '#app', data
2021-03-17 09:51:19
1583
2
原创 2021HTTP面试精选——持续更新
目录HTTP有哪些⽅法这些⽅法的具体作⽤是什么GET和POST有什么区别PUT和POST都是给服务器发送新增资源,有什么区别PUT和PATCH都是给服务器发送修改资源,有什么区别http的请求报⽂是什么样的http的响应报⽂是什么样的聊⼀聊HTTP的部⾸有哪些聊⼀聊HTTP的状态码有哪些同样是重定向307,303,302的区别HTTP的keep-alive是⼲什么的为什么有了HTTP为什么还要HTTPSHTTPS是如何保证安全的HTTP2相对于HTTP1.x有什么优势和特点H
2021-03-05 16:00:10
258
转载 发布-订阅模式
发布-订阅模式学习知识要善于思考,思考,再思考。 —— 爱因斯在众多设计模式中,可能最常见、最有名的就是发布 - 订阅模式了,本篇我们一起来学习这个模式。发布 - 订阅模式 (Publish-Subscribe Pattern, pub-sub)又叫观察者模式(Observer Pattern),它定义了一种一对多的关系,让多个订阅者对象同时监听某一个发布者,或者叫主题对象,这个主题对象的状态发生变化时就会通知所有订阅自己的订阅者对象,使得它们能够自动更新自己。当然有人提出发布 - 订阅模式和观察
2021-02-27 09:37:48
7600
原创 2021React面试精选——持续更新
目录React的请求应该放在哪个⽣命周期中jsx的本质是什么React组件通信如何实现React最新的⽣命周期是怎样的setState到底是异步还是同步React中keys的作用是什么受控组件和非受控组件区别是啥如何避免组件的重新渲染谈一下你对fiber的理解什么是高阶组件虚拟DOM是什么讲下redux的⼯作流程react-redux是如何⼯作的redux与mobx的区别redux中如何进⾏异步操作redux异步中间件之间的优劣1、React的请求应该放在哪个⽣命周期中
2021-02-13 20:36:25
4537
1
原创 2020年度总结
前言既然我已经踏上这条道路,那么,任何东西都不应妨碍我沿着这条路走下去。——康德回顾20202020比较魔幻,年初的时候遇到了疫情。之后在家办公了半个多月,后面还整年都是出行戴口罩。陆陆续续的传出某地有人感染,然后就是一个热搜。给自己的2020打一个7分的成绩吧。今年工作中,生活中,学习上,从各种事情中感悟到了很多,明白了一些事情应该怎么做,学会听从自己的内心。不惧选择,接受最坏的打算,但行好事莫问前程!工作今年参与的所有项目:招行随心展浙商交易宝中行易融汇中信量化中信集中交易大
2021-01-10 09:13:47
242
1
原创 浏览器EventLoop解析
任务队列因为JavaScript是单线程的。意味着,前一个任务结束,才会执行后一个任务。如果前面一个任务执行的时间很长,后面一个任务不得不等待,会形成卡死现象。如果仅仅只是计算量太大了,也算了。但是很多时候,cpu是闲着的,比如io输入输出,ajax请求,难道不得不等待结果,再执行吗?JavaScript语言的设计者意识到,这时主线程完全可以不管IO设备,挂起处于等待中的任务,先运行排在后面的任务。等到IO设备返回了结果,再回过头,把挂起的任务继续执行下去。于是,所有任务可以分成两种,一种是同步任务
2021-01-03 19:11:28
177
原创 BFC原理深入浅出
BFC的含义MDN的定义: 块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视化CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。BFC(block formatting context)块级格式化上下文,它是页面中的一块渲染区域,并且有一套属于自己的渲染规则,它决定了元素如何对齐内容进行布局,以及与其他元素的关系和相互作用。 当涉及到可视化布局的时候,BFC提供了一个环境,HTML元素在这个环境中按照一定规则进行布局;
2021-01-01 20:29:25
286
原创 前端跨域的七种解决方案
前端开发的历史年轮服务端渲染客户端渲染(同源策略)客户端渲染(跨域方案)半服务端渲染(SSR)谈谈你对跨域的理解跨域主要分3部分:协议相同域名相同端口相同只要有一个不同,那么就是跨域 // 地址 http://www.baidu.com 协议:http:// 域名:www.baidu.com 端口:8080(http) 443(https) 默认端口省略 http://www.baidu.com/login.html // 同源 http://w
2020-12-29 22:55:27
799
1
原创 面试再也不怕被问到js数据类型了
js有哪些数据类型js中的数据类型主要分为2种:基本数据类型(值类型)number(数字)string(字符串)boolean(布尔)null(空)undefind(未定义)symbol(唯一值) ES6中新增的数据类型(不能被new) 创建唯一值Symbol(10)===Symbol(10):falsebigint(大数据值) ES6中新增的数据类型(不能被new) Number.MAX_SAFE_INTEGER(最大安全数)引用数据类型object(对象)Array(数
2020-12-28 23:44:10
486
2
原创 不一样的函数防抖和节流
防抖和节流浏览器的 resize、scroll、keypress、mousemove 等事件在触发时,会不断地调用绑定在事件上的回调函数,极大地浪费资源,降低前端性能。为了优化体验,需要对这类事件进行调用次数的限制。狂点一个按钮页面滚动入模糊匹配。。。。。。防抖(debounce)在某一次高频触发下,我们只识别一次(可以控制开始触发,还是最后一次触发)详细:假设我们规定500MS触发多次算是高频,只要我们检测到是高频触发了,则在本次频繁操作下(哪怕你操作了10次)也是只触发一次…<
2020-12-27 20:55:11
6099
11
原创 如何回答一些非技术类面试
如何看待加班(996)⽬的:考察候选⼈的抗压能⼒和责任⼼分析:这个问题⼏乎是必问的,虽然996ICU事件闹得沸沸扬扬,但是官⽅的态度很暧昧,只⼝头批评从没有实际⾏动,基本上是默许企业违反劳动法的,除了个别外企在国内基本没可能找到不加班的公司,所以在这个⾯试题中尽量体现出⾃⼰愿意牺牲⾃我时间来帮助团队和企业的意愿就⾏了,⽽且要强调⾃⼰的责任⼼,如果真的是碰到⽆意义加班,好好学习怎么⽤vscode刷LeetCode划⽔是正道。答:我认为加班分为紧急加班和⻓期加班对于紧急加班,我觉得这是每个公司都
2020-12-27 12:22:42
550
原创 遇见你,真好
莎士比亚曾说,爱一个人就要去了解她。只有了解了,你才知道如何去爱。相遇2019年12月28日,我们第一次相遇。那时候,我们聊了很多,聊的很愉快。之后,我们没有约会,只是偶尔会闲聊几句。过完年后,疫情还在,基本上都不能出去。有一天晚上,我看到你在玩王者荣耀,正好我也在玩。我邀请你,你说等等,我还有几个小姐妹。于是,我们就一起开始五黑了。那段时间,是我们交流最多的时候,我们每天下班晚上都在开黑,你和你的小姐妹在峡谷里面逛街,我在认真杀人,游戏中,充满了欢声笑语。慢慢的,我有点喜欢你了;慢慢的,我爱上
2020-09-25 09:42:53
2687
2
原创 事件处理机制
事件事件是元素(或者浏览器)天生自带的行为,只要行为触发,则会触发相关的事件行为;我们原有基于xxx.onxxx=function(){}属于事件绑定:给某个事件行为绑定方法,再行为触发的时候可以通知方法执行事件鼠标事件click 点击(PC) 单击(移动端)dblclick 双击contextmenu 鼠标右键mousedown 按下mouseup 抬起mousemove 移动mouseenter/mouseleave 进入和离开mouseover/mouseout 滑
2020-09-19 18:23:39
722
原创 js构造函数
构造函数构造函数执行 new xxx()构造函数执行就是创建自定义类和类所对应的实例Func被称为类 f1被称为当前类的一个实例像普通函数执行一样,把函数执行,并且私有上下文和形参赋值等都操作一遍特殊的操作在形成私有上下文之后,首先默认会创建一个对象(实例对象)让当前上下文中的THIS指向创建的这个对象所以接下来代码执行过程中所有的 this.xxx=xxx 都是给实例对象设置私有的属性和方法代码执行完成后,看是否有返回值,没有返回值默认返回创建的实例对象,如果有返回值,看返回值的
2020-09-06 15:32:37
356
原创 闭包的应用
闭包的应用循环绑定事件闭包的方式var body = document.querySelector('body'), buttons = document.querySelectorAll('button'), arr = ['red', 'green', 'blue'];// 方法1for (var i = 0; i < buttons.length; i++) { buttons[i].onclick = (function (i) { return functio
2020-09-05 20:03:25
203
原创 let、var、const的区别
let、var、const的区别JS中声明变量或者函数的方式// 【传统】var n = 10;function func(){}var func = function(){};// 【ES6】let n = 10;const m = 20;let func = ()=>{};import xxx from 'xxx';let和const的定义// =>const设置的是常量,存储的值不能被改变 【不对】// =>const创建的变量,它的指针指向一旦确定,不
2020-09-05 20:00:11
141
原创 前端每日一练
20200824_let、const、var的区别20200825_闭包的理解20200826_定义函数的方法20200827_类组件和函数组件的区别20200828_如何避免组件的重新渲染20200829_instanceof原理20200830_当调用setState时,React render 是如何工作的...
2020-08-30 23:21:47
297
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人