- 博客(98)
- 收藏
- 关注
原创 前端求职误区解析:为什么你投简历没回应
最近在网上看到很多人找前端工作一直碰壁,甚至有些人心态崩溃都产生转行的想法,今天通过这篇文章,以一个8年经验老开发的角度,给大家分析一下找不到工作的原因是什么,应该怎么去做。不可否认,现在找工作要比之前难一些,但这是经济下行带来的,你不干前端,去干别的,也一样不好找工作。那些说什么前端已死、互联网已死的请绕道,我没有闲工夫去和你争论这些。现在失业率突破20%,难不成这20%全是干前端的?整个前端的从业人员都没有这么多!
2023-11-28 15:58:43 1157
原创 从 0 到 1 开发一个 node 命令行工具
G2 5.0 推出了服务端渲染的能力,为了让开发者更快捷得使用这部分能力,最写了一个 node 命令行工具 g2-ssr-node:用于把 G2 的 spec 转换成 png、jpeg 或者 pdf 等。最后得到如下的图片 bar.png:那接下来就来看看如何从 0 到 1 实现 g2-ssr-node。
2023-11-28 15:25:49 917
原创 探索优雅的处理 JavaScript 类数组对象的技巧
类数组对象是指在 JavaScript 中具有类似数组的特点,但并非真正的数组。它们与数组相似,可以通过索引访问元素,并且具有length属性来表示元素的个数。但与真正的数组不同,类数组对象不具备数组原型链上的方法和属性。length: 3,// 输出: 3通过本篇文章,我们了解了在 JavaScript 中处理类数组对象的一些优雅的技巧。这些技巧可以帮助我们更加灵活地操作和处理数据,提高开发效率和代码质量。首先,我们学习了几种在前端开发中常见的类数组对象。
2023-11-24 16:55:26 1004
原创 一盏茶的时间,入门 Node.js
在Node.js中,我们可以将一个文件视为一个模块。每个模块都有自己的作用域,其中的变量、函数和类等内容默认是私有的。通过使用module.exports对象,模块可以向外部公开一些内容。这是一个简单的 Node.js 入门介绍,涵盖了基础概念、模块系统、异步编程、Express 框架以及文件操作。随着深入学习,我们能够构建更复杂、高性能的应用程序。继续学习并享受使用 Node.js 的过程吧!
2023-11-23 14:46:37 372
原创 React 埋点(案例分享)
至此,我们就实现了一个基本的埋点需求,当我们想要在某些点击事件的功能上触发埋点,只需要像这样:即可。递归向上搜索可能会由于项目结构过于复杂,递归调用栈过多而导致栈溢出所有点击事件都会触发这个report()函数但是这些性能消耗在中小项目中带来的影响并不大。如果为了更好的解决这个问题,我们只有在需要触发埋点的地方主动发送请求,这就有点麻烦了,可以使用自定义Hook来简化,但也简化不了多少,可以看看这篇(React 实现自动上报 pv/click 的埋点 hooks。
2023-11-16 15:42:57 733
原创 你是否好奇,前端专家的简历怎么写?
这块写的太过简单了些,可以把「年龄、学历、工作年限、所在城市」等信息加上,HR 筛选简历时会看。建议大家在面试之前多刷刷面试题,八股文有需要的小伙伴————》点击此处领取《————
2023-11-16 15:40:06 632
原创 前端面试八股文(附答案和解析)
14.localstorage 各种storage indexDB。23.express和kao的区别 各自的原理 优缺点。42.JavaScript中数据在内存中的存储方式。3.webpack、原理、编译变快、插件、13.算法:排序、字符串、数组、动态规划。22.安全防御 xss漏洞 crsf攻击。24.设计模式 观察者订阅者 单例。43.postMessage方法通信。12.从输入url到页面渲染出来。20.用var实现let。19.babel的实现。21.项目、设计、实现。40 抗dos、waf。
2023-11-15 17:35:20 427
原创 前端实现埋点&监控
*** 这是一个默认值的接口,用于埋点类Tracker传递初识化时配置默认值* @uuid 做uv的 uv标识* @requestUrl 接口地址* @historyTracker history上报 单页面应用时 一种模式是hash一种模式是history* @hashTracker hash上报* @domTracker 携带Tracker-key 点击事件上报* @sdkVersionsdk sdk版本上报* @extra 透传字段 用户可以自定义一些参数 也可以上报这些。
2023-11-15 11:29:29 449 1
原创 2023前端面试题总结:JavaScript篇完整版
JavaScript 的包装类型是指基本数据类型(例如 number、string、boolean)在一些特定场景下会被自动转换为对应的包装对象,从而可以使用对象的方法和属性。这种自动转换是临时性的,仅在需要调用对象方法或属性时发生,操作完成后又会自动转换回基本数据类型。这种特性可以让基本数据类型在某些情况下表现得像对象。Number 对应于基本数据类型 numberString 对应于基本数据类型 stringBoolean 对应于基本数据类型 booleanjavascript。
2023-11-14 17:04:07 62
原创 清华大学出版,前端必看书籍之一,看完React提升80%!
React是一个用来创建组合式Web应用程序的开源库,由Facebook维护。自从公开发布后,这个库迅速风靡全球,并且围绕着它产生了一个生机勃勃的社区。本书将涵盖React库的各个细节,并将讨论基于组合式模型来创建Web组件接口的最佳实践。React 库本身并不大,所以本书同时涵盖了React 生态系统中的-些工具和库(例如React Router和Flux架构),以便为读者提供创建完整应用程序所需的足够知识。书中对每个主题的讲解都简洁明了,你将逐一了 解到你需要掌握的各个细节,从而学会真正有效地使用它们。
2023-11-14 16:46:49 1418
原创 小白一看就懂!揭秘JavaScript中神奇的闭包机制
JavaScript作为一种广泛应用的编程语言,其特有的执行环境和作用域规则给开发者带来了许多独特的概念和挑战。本文将深入探讨JavaScript中的调用栈、作用域链和闭包,并通过代码示例详细阐述它们之间的关系和应用。
2023-11-13 11:46:52 50
原创 浏览器工作原理学习总结
渲染进程将 HTML 内容转换为能够读懂的 DOM 树结构渲染引擎将 CSS 样式表转化为浏览器可以理解的 styleSheets,计算出 DOM 节点的样式创建布局树,并计算元素的布局信息对布局树进行分层,并生成分层树为每个图层生成绘制列表,并将其提交到合成线程合成线程将图层分成图块,并在光栅化线程池中将图块转换成位图合成线程发送绘制图块命令 DrawQuad 给浏览器进程浏览器进程根据 DrawQuad 消息生成页面,并显示到显示器上(本文完)
2023-11-10 10:29:22 63
原创 众里寻命名千百度,BEM却在灯火阑珊处
块(Block): 块是页面上的独立组件,每个块都有自己的名称空间,以便与其他块进行区分。块名通常使用小写字母,单词之间可以使用短横线(-)分隔。例如:.block,.block-name元素(Element): 元素是组成块的子元素,通常用于定义块的内部结构和样式。元素名称以块名称为前缀,用双下划线(__)分隔。例如:.block__element修饰符(Modifier): 修饰符是用于修改块或元素的行为或样式的标记。修饰符名称以块/元素名称为前缀,用双连字符(--)分隔。
2023-11-09 15:40:31 64
原创 看这篇就够了,帮你解决大厂前端面试,2023最新前端八股文!
相信很多的小伙伴都还在经历找工作的痛苦之中,那么小编也曾是万千应届求职者之一,也曾经历的痛苦之中。小编满怀着对年轻人的殷切期望,希望通过这篇文章为前端求职的同学提供一定的帮助看到小编投递的简历就能发现,我的投递直到10月23日才停止,很多面试也是在之后才正式开始的,尤其是一些银行、国企单位,所以暂时还没拿到offer的小伙伴们耐心等待,耐心准备面试、笔试,你的好消息总会在春暖花开的日子到来(附上我当时投递的公司列表)
2023-11-02 15:02:47 229
原创 10 分钟了解 nextTick ,并实现简易版的 nextTick
简单的说,nextTick 方法是在 Vue.js 中常见的一种异步更新 DOM 的机制。它的原理是利用 JavaScript 的事件循环机制以及浏览器的渲染流程来实现延迟执行 DOM 更新操作。它的出现主要是为了解决 Vue 的异步更新导致的 DOM 更新后的操作问题。在 Vue 中,数据的变化会触发重新渲染 DOM,但实际上,Vue 的数据更新是异步的。也就是说,当我们修改了 Vue 实例的数据后,并不会立即进行 DOM 更新,而是在下一个事件循环中才会进行。这个异步更新机制的设计是为了优化性能。
2023-11-01 15:58:02 210
原创 2023年金九银十面经,假的今年没有金九银十
历经近一个月的时间,我目前已经收到两家的offer,第一家可能不是很满意,拒了,第二家开出的薪资也比较符合我的预期,考虑到目前的环境的情况,我就不做犹豫选择了入职,此文章后续可能不会再继续更新,但是我会努力继续写一些好的文章,分享给大家。在这里给一些求职者或者将要寻求其他发展机会的人一些拙见我感觉国庆后的市场机会多了一些,但是也只是一点,如果说还能撑一撑的伙伴们,我建议还是再撑一撑就算换了工作,现在其实很多公司可能给不到你预期的工资,你可能会面临两个问题。
2023-10-31 15:04:38 73
原创 字节高级架构师推荐!程序员必读之《软件架构》
平心而论,不难看出这是为什么。即使在最敏捷的团队中,软件构架这一角色也都是必需的,不管是由一个人还是整个团队共同扮演,但要寻求到预先和演化两种构架理念的平衡,往往还只是人们美好的意愿而并没有变为现实。架构作为名词来解释时,概括起来都与结构有关:将产品分解为一系列组件、模块和交互这需要考虑整个产品,包括处理(建筑物的)供电、供水、空调,或处理(软件的)安全、配置错误处理等横切关注点的基础设施服务。通过学习这部分,我们将了解软件架构是什么,架构和设计的区别,敏捷的架构意味着什么,以及为什么思考软件架构很重要。
2023-08-10 16:44:38 191
原创 new 一个对象时,js 做了什么?
在 JavaScript 中, 通过 new 操作符可以创建一个实例对象,而这个实例对象继承了原对象的属性和方法。因此,new 存在的意义在于它实现了 JavaScript 中的继承,而不仅仅是实例化了一个对象。
2023-08-10 15:34:59 349
原创 虚拟 DOM 和实际 DOM 有何不同?
本文我们会先聊聊 DOM 的一些缺陷,然后在此基础上介绍虚拟 DOM 是如何解决这些缺陷的,最后再站在双缓存和 MVC 的视角来聊聊虚拟 DOM。理解了这些会让你对目前的前端框架有一个更加底层的认识,这也有助于你更好地理解这些前端框架。在谈论什么是虚拟 DOM 之前,我们先来看看虚拟 DOM 到底要解决哪些事情。将页面改变的内容应用到虚拟 DOM 上,而不是直接应用到 DOM 上。
2023-08-10 14:28:06 132
原创 vite4+react+antd需要注意的地方,本地svg单独引用
less或者css,sass需要用到模块化的话,后缀名全部要加上《module》如*.module.less。否则不会生效。
2023-08-09 17:15:12 524
原创 基于 tailwindcss 的多端自适应布局方案
基于 tailwindcss 的多端自适应布局方案,可以让我们在同一套代码上去针对不同的屏幕尺寸去做样式适配,可以大大减少我们的开发成本。但是,这要求前端开发和设计师能够协同工作,设计师需要提供不同断点下的布局设计,前端开发需要根据设计稿去实现不同断点下的布局。这样,我们才能实现一套代码,多端自适应的布局方案。
2023-08-09 17:11:47 4024 2
原创 小狐狸学mini-vue(一、响应式模块)
编写一个 ts 函数,和编写一个测试用例,并让其通过,使用jest这个库。安装 jest因为jest默认使用的是 commonjs 规范,所以我们需要使用babel来进行转换,使用ts在项目下面新建babel.config.js编写一个ts函数关闭强制检查any编写一个 index.ts代码编写index.spec.ts添加 script脚本然后在命令行执行yarn test, 通过则表示测测试环境搭建成功了。
2023-08-09 17:06:53 96
原创 清华大学出版!Web性能测试实战详解!
本书主要讲解了大数据背景下的 Web 性能测试的特点和方法,以及使用业内应用非常广泛的工具LoadRunner 11 进行性能测试的具体技术与技巧。本书理论结合实践,讲解图文并茂,并且将IT 技术有生活场景结合起来,生动而又形象。
2023-08-09 17:04:06 105
原创 这可能是我见过最好最全的JavaScript题库!
上周找要来了一套内部资料——,都是点,文档内容整理采用模式,掌握了不单能应付面试,还能学到更多的前端核心知识,应用在工作中!下面是部分资料内容的展示↓1Javascript面试真题解析 210页2Vue面试真题 237页3Css面试真题 127页4React面试真题 156页5前端复习路线(对标阿里P5-P7)
2023-08-08 16:04:32 104
原创 vuecli4升级到5遇到的问题总结
我们之前在项目写了一个webpack自定义插件,然后升级了vue-cli5后,打包报错了。js复制代码 // vue.config.js// 自定义插件},js复制代码// custom plugin.js查看了webpack5的文档,才发现入口的写法更丰富了。原来entry可以是字符串,或者是字符串对象,数组。js复制代码entry: './app.js'// orentry: {现在的webpack5在这个基础上,还支持import,dependOn等字段。
2023-08-08 15:51:05 2136 1
原创 【electron】5分钟把网页打包成可安装的exe桌面应用
老板们突发奇想,把现有的一个管理后台系统打包成桌面端可安装应用,当时我脑海就浮现出两套方案,Electron或Flutter的Webview来打包应用,相对来说Electron熟悉点,就优先考虑了使用Electron,当然后来也使用Flutter实现了一版,效果差别不大,我们先来看看Electron是怎么实现的。
2023-08-08 15:49:14 2269
原创 实现静态资源访问的几种方法
什么是静态资源?静态资源是指在服务器端存储的不会变化的文件,如HTML、CSS、JavaScript、图片、音频、视频等文件。这些文件一般不包含动态内容,每次请求时返回的内容都是固定的。为什么要使用静态资源?
2023-08-08 15:47:16 569
原创 学习Vue3系列-开发滑动图片组件
最近有个项目是需要用到,滑动图片组件来进行用户登录验证,本着拿来精神,上去github找到了一款比较适合项目开发的插件。但是本着学习精神,所以决定深入研究源码,模仿一下优秀的代码思路,提高一下自己的水平。
2023-08-07 15:26:25 743
原创 前端工程师也应该了解的 docker compose
一个月前,我写了一篇《前端工程师也应该了解的docker》,之后就不断有小伙伴千呼万唤!docker-compose.yml 容器编排配置文件volume 数据卷持久化network 网络(bridge 模式)nginx 反向代理这一部分的内容还是很难的,但是没关系,看到 3.1 节,你不可能不会。对了,这次我在 github 上准备了源码,按照顺序分成了多个 tag 版本的代码,方便大家参考:github.com/Knight174/d…
2023-08-07 15:19:50 155
原创 玩转Vue3:计算属性和监视属性深度解析
1. Computed属性computed 是一个函数,它返回一个值,该值依赖于组件的数据。当依赖的数据发生改变时,computed 返回的值会自动更新。在 Vue.js 中,我们通常使用 computed 来封装复杂的逻辑或计算属性,使得我们能够更加方便地处理这些逻辑,并且保证其响应式的特性。2. Watch属性watch 是一个对象,它允许我们观察 Vue 实例的数据。当数据变化时,我们可以执行一些操作。在某些情况下,我们可能需要等待数据改变后执行某些操作,或者在数据改变时执行异步操作。
2023-08-07 15:15:29 392
原创 前端面试题有哪些,有没有前端面试题库?
这份手册中特别收集归纳了近两年的大厂高频面试题,题库涵盖HTML,CSS, JavaScript,常用框架和库类。我在和几位大佬详细沟通之后,终于整理出了这份最新的《2023 前端 offer 收割指南》,涵盖各大厂最新面试题合集,部分题目还是有点难度的!想高效快速地拿到心仪 offer,一定要从面试官的角度出发,提前做好功课,了解市场的最新风向。即便不进大厂,也可以通过这些知识点查漏补缺、提升自己,进阶高级前端工程师!————》点击此处领取《————————》点击此处领取《————
2023-08-04 15:00:56 69
原创 你知道vue中key的原理吗?说说你对它的理解
如果数据项的顺序被改变,Vue 将不会移动 DOM 元素来匹配数据项的顺序, 而是简单复用此处每个元素,并且确保它在特定索引下显示已被渲染过的每个元素。这里判断是否为同一个key,首先判断的是key值是否相等如果没有设置key,那么key为undefined,这时候undefined是恒等于undefined。key是给每一个vnode的唯一id,也是diff的一种优化策略,可以根据key,更准确, 更快的找到对应的vnode节点。那么这背后的逻辑是什么,key的作用又是什么?其实不然,文档中也明确表示。
2023-08-04 14:18:36 178
原创 自动化兼容性检查和解决方案:应用不会再白屏了
对于前端开发者来说,caniuse网站是一个非常有用的工具,它可以帮助我们查询JavaScript API在不同浏览器版本中的兼容性情况。以fetch为例,我们可以在网站上查到其兼容性如下图所示:但是人工保证 API 的兼容性是不可靠的,下面我分享一个真实发生的案例来分享本文的主题自动化兼容性检查和解决方案。
2023-08-04 14:15:48 238
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人