自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 前端工程师学习路径记录

2025.05.25左右决定开始学习前端。这篇文章不定期更新进展。

2025-07-12 03:35:16 680

原创 JavaScirpt高级程序设计第三版学习查漏补缺(1)

2.null和undefined区别:null表示空对象引用,已显实初始化目前没有赋值但将来会被赋值为对象;4.boolean值为false只有六种情况:关键字false、空字符串、NaN、0、null、undefined。3.<script>中显实使用defer和async用来首屏优化。(这一块可以拓展深入)5.0.1+0.2 === 0.3 //false,浮点数最高精度为17位小数。对全局变量显实赋值为null,管理内存。1.MIME:表示编写代码使用的脚本语言的内容类型。

2025-08-17 20:29:52 404

原创 指针/边界索引混淆梳理

链表创建一个dummy节点,添加到head前,则可认为从索引0开始。在处理数组/链表等数据结构时,时常混淆长度和指针序号。处理技巧:使用0-base索引。

2025-08-16 19:37:27 416

原创 LeetCode 1991:找到数组的中间位置

方法二:数学公式,2*leftSum = sum - num[i],i即为所求索引。时间O(n),空间O(1)。方法一:分别累计存储左右的和。技巧:lodash实用库弥补原生JS不足。

2025-08-16 13:47:00 644

原创 LeetCode Hot100:递归穿透值传递问题

题目:104.二叉树的最大深度。1.自底向上依靠return。2.自顶向下依靠全局变量接收。

2025-08-15 23:40:04 310

原创 二叉树(1):二叉树的前、中、后和层次遍历

二叉树入门级别。

2025-08-15 19:54:28 317

原创 ES6+内置进制转换方法

【代码】ES6+内置进制转换方法。

2025-08-15 13:03:00 366

原创 localhost:5501与本机ip:5501不同源

博主在测试时候发现,使用express设置CORS时,浏览器将localhost:5501与本机ip:5501两个url视为不同源。浏览器报错被CROS协议封锁。修改后端响应头Access-Control-Allow-origin:http://127.0.0.1:5501,成功跨域访问。

2025-08-14 14:17:39 331

原创 深度贴:前端网络基础及进阶(3)

同源策略是一套浏览器「安全机制」,当一个源的文档和脚本,与另一个源的资源进行通信时,同源策略就会对这个通信做出不同程度的限制。简单来说,同源策略对。源和同源:源(origin)由协议(schema)、域名domian、端口号port组成。只要协议、域名、端口号都相同的就是同源。若服务器明确拒绝或没有表示,则校验不通过,产生跨域问题。同源请求:同源指的是页面源和目标源两者之间。页面源和目标源不一致的时候就是跨域请求;因此限制造成的开发问题,称之为跨域(异源)问题。在网页源和目前源之间添加一个中间服务器。

2025-08-12 21:32:52 703

原创 深度贴:前端网络基础及进阶(2)

浏览器为什么称为用户代理?浏览器如何代替用户发送http请求?带着这些问题,让我们潜入本文章⬇️。

2025-08-12 17:07:33 813

原创 深度贴:前端网络基础及进阶(1)

前端在实际开发中,与网络相关知识接触最多,具体的场景如调用AJAX、FETCH;前后端协同开发;性能优化等等。

2025-08-10 00:25:27 1407

原创 异步改变Promise状态与then调用顺序

在Promise里,Promise实例的then方法只有实例状态从pending改变才会被推入微任务队列执行,在状态改变前,只会记录成功和失败的回调函数引用而不执行。单纯理解事件循环,按照微任务优先级>宏任务优先级的机制,应该输出2 4 3 1,问题在哪?事件循环是对 执行的函数 按优先级执行,没有被执行的则谈不上这个机制。“异步改变Promise状态与then调用顺序”

2025-08-08 14:35:13 158

原创 深度贴:面试频繁手撕Promise,它足够重要!

Promise是谁对谁的承诺(Promise)?为什么大厂面试要手撕Promise的方法?Promise是为了解决什么场景下的问题?Promis是怎么提高我们的开发体验的?让我们带着这些问题进入本文⬇️...在开始之前,博主聊聊对Promise的本质看法:Promise变量语义:js引擎外的程序(进程或线程)对 js引擎的约定(Promise)。“我给你发了一个任务,我保留是否收到你对我反馈的记录。所以可以顺着思考使用场景:需要交由外部线程去处理的任务源(代码),都可以考虑用promise处理。

2025-08-08 00:41:48 850

原创 百度我真的...垂直招聘!

百度,这是给前端的垂直招聘吗!独属于程序员的浪漫~

2025-08-07 23:56:09 441

原创 配置VScode内置Emmet自动补全代码

在VScode “设置->拓展”里找到Emmet,进入"配置文件settings.json",添加如下配置代码字段。博主发现每次写html语法都要自己从头开始写一遍<!DOCTYPE>,为偷懒,遂寻到Emmet。创建文件直接输入一个"!",插件自动补全代码。

2025-08-07 15:03:09 537

原创 flex布局:容器内部项目间距调整、排序、主轴行列变换等

flex的布局核心思路是:创建一个container,然后对container属性进行赋值,我们的布局都在container中进行。

2025-08-07 14:12:13 161

原创 flex布局:容器的justify-content属性

justify-content(行内容)属性一共有都个值:图片布局示例从上到下以此对应justify-content的值:

2025-08-06 20:52:43 289

原创 “Why“比“How“更重要:层叠样式表CSS

在开始之前,我们先抛出一些问题:CSS是在什么背景下出现的?你知道我们常说的CSS3标准是按模块推出的吗?为什么入门要从盒模型开始?CSS是如何参与浏览器中渲染部分的?

2025-08-05 23:41:58 1681

原创 深度贴:你真理解React Hooks吗?

博主在思考:为什么React 反复提及状态的概念?这个问题单独看React是得不到答案的。在博主看来,传统的前端是 JavaScript 编写逻辑(代码)控制状态,然后操作DOM更新状态显示到页面。(场景)不难思考到,传统的前端在使用中面临许多问题(问题)在工程结构中,在文件架构中HTML与JS分离。复用一套前端的模版,要单独复制JS、CSS 与HTML。复用效率低下。DOM渲染资源消耗高。主流的前端框架一直在探索上面两个问题的解决方案,对此,对应的解决方案有(方案)

2025-08-03 21:05:50 1994

原创 LeetCode 热题100:206. 反转链表

这道简单题,两个简单的思路,链表的思路基本比较类似:使用额外数据结构存储迭代遍历的val、快慢指针等等。

2025-08-01 22:22:36 443

原创 一道很火的面试题:add(1)(2)(3)——柯里化+闭包+重写toString方法

思路:要保存每次输入的变量,能不限次数反复调用,最后返回所有变量的和。add(1)(2,3,4)(5),输出16。add(1,2,3)(4),输出10。add(1)(2)(3),输出6。

2025-08-01 16:14:04 152

原创 一文知根:JS中this到底指的谁?

this也是上下文的一种,在一个执行上下文栈帧中,函数执行上下文 = 环境记录 + outer + this的绑定 共同组成。this的指向比较复杂,且同样重要。

2025-08-01 14:17:34 765

原创 前端手写贴

前端手写。要理解JavaScript底层规律,本帖将会更新手写相关内容,顺道巩固知识体系。

2025-07-29 21:29:56 922

原创 浅拷贝和深拷贝

引用:指向堆内存中的指针,指针指向的地址存储了引用类型数据。栈内存:7个基本类型存储在执行上下文栈中,正常情况跟随执行上下文一起被创建和回收。复用:多个变量为同一个引用。

2025-07-29 16:53:26 321

原创 干货贴:一个图片让你完整了解浏览器渲染进程

结合前两篇深度文,你会对浏览器渲染引擎和JavaScript有一个更系统的知识体系。

2025-07-29 13:01:13 739

原创 前端工程化宏观基础概念

前端到底有哪些东西?前端语言:JavaScript、HTML、CSS协议:网络相关协议(http、websocket、oauth2、websocket)环境:浏览器、node环境、小程序环境、app环境、构建工具。框架/库:Vue、React、aixos服务器:node、expree、mysql、redis、mongoDB工程化:TS、saas、less、stylus。

2025-07-28 11:01:05 893

原创 深度贴:JS到底如何被执行——JavaScript引擎及执行上下文

JavaScript执行机制解析:从词法环境到V8引擎 本文系统梳理了JavaScript的核心执行机制,主要包括四个部分:1)词法环境与变量环境的区别及关系;2)闭包的形成机制与内存管理;3)V8引擎的完整执行流程;4)内存回收机制。文章详细解释了词法环境由环境记录和外部引用组成的三层结构,以及闭包形成的三要素;通过流程图展示了V8引擎从初始化到代码执行的全过程,包括解析、编译、优化等关键环节;最后分析了内存生命周期和垃圾回收机制。对变量提升、作用域链、执行上下文等核心概念进行了深入剖析,为理解JavaS

2025-07-27 00:24:52 1634

原创 LeetCode 热题100:160.相交链表

根据这个思路,当A和B指针遍历到null,跳到对方的头节点,若两个节点相等,则一定交于同一个节点(最终一定交于null)参照图片,链表A指针从开始到null,链表A步长 = 链表A独立节点步长 + 公共节点步长 + 空节点;链表A步长 + 链表B独立节点步长 == 链表B步长 +链表A独立节点步长。同理,链表B步长 = 链表B独立节点步长 + 公共节点步长 + 空节点。时间复杂度O(m+n),空间复杂度O(m)时间复杂度O(m+n),空间复杂度O(1)

2025-07-23 17:01:28 684

原创 LeetCode 热题100:42.接雨水

关键理解点1:不论如何,right_max和left_max最终会汇聚到height最高的一列,也就是 max = Math.max(...height)。Volume = min(left, right) - height,即。关键理解点2:总是以桶最短的边减去底座装满水。总是以桶最短的边减去底座装满水。这道题也可以用双指针。

2025-07-22 21:34:23 647

原创 LeetCode 热题100:11.接雨水

算法思路:volume = min(左边桶高,右边桶高)*桶长。左右相向双指针,时间复杂度O(n),空间复杂度O(1)。

2025-07-22 16:56:21 248

原创 React 源码7:Lane、React和schedule优先级转换

在《源码3》requestUpdateLane函数根据eventLane获取不同情况对应优先级。

2025-07-16 18:41:10 768

原创 React源码5 三大核心模块之一:render,renderRoot

【代码】React源码5 三大核心模块之一:render,renderRoot。

2025-07-15 22:10:00 262

原创 React源码6 三大核心模块之一:commit, finishConcurrentRender函数

【代码】React源码6 三大核心模块之一:commit, finishConcurrentRender函数。

2025-07-15 22:09:57 339

原创 React源码4 三大核心模块之一:Schedule,scheduleUpdateOnFiber函数

在《React源码3》,我们已经将update加入队列并返回到了根容器节点root。

2025-07-15 18:13:10 584

原创 React源码3 :update、fiber.updateQueue对象数据结构和updateContainer()中enqueueUpdate()阶段

回顾:初始化创建完FiberRootNode和hostRootFiber后,调用render方法update。

2025-07-15 00:08:39 918 1

原创 CSS设计理念:层叠、优先级和继承

简单的说,就是 CSS 规则的顺序很重要;当应用两条同级别的规则到一个元素的时候,写在后面的就是实际使用的规则。

2025-07-12 03:15:20 187

原创 在HTML中CSS三种使用方式

元素{属性1:属性值1;属性属性值2}

2025-07-11 20:44:54 372

原创 CSS 版本迭代历史和版本特性

这个版本包含了font(字体)的相关属性、颜色与背景的相关属性、文字的相关属性、box的相关属性。分成若干较小的模块较利于规范及时更新和发布,及时调整模块的内容;同时模块独立实现和发布,也为日后CSS3.0标准正式推出铺垫。1998年5月,CSS2.0推出。推荐内容和表现效果分离的方式,开始使用样式表结构。CSS3.0的新特性是被分成若干个相互独立的模块。2001年,W3C着手开始准备开发CSS第三版规范,推出草案。将HTML和CSS分离,通过导入CSS文件到HTML文件,使用外联样式表。

2025-07-11 11:04:03 364

原创 深度帖:浏览器的事件循环与JS异步

从渲染主线程、同步的劣势和异步操作过程等角度回答。JS的运行环境JS是单线程的语言,这是因为它运行在浏览器渲染进程中的渲染主线程,渲染主线程只有一个。渲染主线程是浏览器线程里最繁忙的一个,承担了许多工作,解析HTML、解析CSS、计算样式、布局、处理图层、每秒渲染页面60次(60帧)、执行全局JS代码、封装成任务的事件处理和计时器回调函数(选几个回答)等都在其中执行。如果使用同步的方式,极有可能会造成渲染主线程的阻塞,从而导致消息队列中的很多其他任务无法执行。

2025-07-09 23:11:47 627

原创 数据结构1:哈希表HashMap

哈希表通常基于数组实现,是一种将文本、数字等数据通过哈希化投影到一维数组中存储的数据结构。提供快速的插入-删除-查找操作。无论数据量多大,插入和删除的时间复杂度O(1)。哈希表的查找速度很快。

2025-07-08 04:46:11 470

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除