自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【每天搞懂一个 JavaScript 问题】前端为什么需要模块化?

前端模块化发展历程与核心概念 摘要:本文系统介绍了前端模块化的发展历程,重点对比了CommonJS和ESModule两大标准。传统开发存在命名冲突、代码耦合等问题,模块化通过拆分功能、明确边界解决了这些痛点。CommonJS采用require/exports语法,适用于Node.js环境;ESModule使用import/export语法,支持浏览器和Node.js,具有静态分析优势。文章详细讲解了两者的导出导入方式、加载机制和适用场景,指出ESModule已成为现代前端开发的标准方案。掌握模块化不仅需要语

2026-02-13 09:47:57 558

原创 使用 Element UI -Container 布局容器时监听屏幕滚动无效

原因: 由于事件的冒泡机制,scroll 滚动时需要考虑监听的元素是否真的在滚动,即内容区是否真的滚动解决方法:捕获冒泡即可。

2026-01-30 17:24:25 474

原创 万字长文,前端 SVG 看这一篇文章就够了

SVG(可缩放矢量图形)是一种基于XML的矢量图形格式,具有无损缩放、文件体积小、可编程性强等特点。与位图不同,SVG通过数学方程描述图形,由点、线、曲线等几何元素构成。文章详细介绍了SVG的基本概念、引入方式、常用标签(如rect、circle、path等)及其属性,包括viewBox、fill、stroke等关键属性的使用方法。同时讲解了SVG的进阶功能,如虚线描边、贝塞尔曲线绘制,以及use、g、defs等组合标签的应用。SVG特别适合制作图标、Logo等需要响应式设计的图形元素,是网页开发中重要的图

2026-01-30 17:14:09 732

原创 【每天一个JavaScript问题】如何实现无延迟拖拽(拖拽便签)

摘要:本文介绍了实现浏览器窗口内元素无延迟拖拽功能的方法。通过mousedown、mousemove、mouseup三个事件的协调使用,计算鼠标移动距离并应用新坐标。关键步骤包括:记录初始位置、计算移动距离、边界检查(确保元素不超出窗口范围)以及应用新位置。代码示例展示了如何获取窗口和元素尺寸,计算最大可移动距离,并通过坐标变换实现平滑拖拽。这个案例不仅实现了类似便签软件的交互效果,也是学习DOM操作和事件处理的实用示例。

2026-01-20 11:46:57 161

原创 【每天搞懂一个算法问题】空间换时间:深入理解哈希表

JavaScript中的哈希表(Map/Set)通过键值映射解决了传统对象的局限性,支持任意数据类型作为键,并提供O(1)时间复杂度的查找性能。相比数组遍历(O(n))和二分查找(O(logn)),哈希表以空间换时间显著提升算法效率,典型应用如两数之和问题的优化。根据场景需求:简单键值对用Object,复杂键类型用Map,唯一值集合用Set。哈希表的核心价值在于快速增删改查、灵活映射和自动去重,是提升JavaScript开发效率和算法能力的重要工具。

2026-01-12 21:22:59 585

原创 【每天搞懂一个网络问题】网络基础:从URL到HTTP的完整指南

本文介绍了网络通信中的核心概念和HTTP协议。服务器作为服务提供方长期运行等待请求,客户端主动发起请求获取服务,二者通过C/S结构交互。URL是互联网资源的定位系统,包含协议、主机、端口等要素。HTTP协议详细规定了请求格式(请求行、请求头、请求体)和响应格式(响应行、响应头、响应体),其中状态码和Content-Type是关键字段。网页呈现过程是浏览器通过HTTP请求获取HTML文件后,解析其中引用的CSS、JS等资源并渲染的过程。文章系统阐述了从网络基础到网页加载的完整技术链路。

2026-01-07 15:42:29 800

原创 【每天搞懂一个 JavaScript 问题】Set 集合与 Map 集合

ES6引入Set和Map弥补了传统数组和对象的局限性。Set专为唯一值设计,自动去重并提供高效的成员检查(O(1)),支持数学集合运算;Map则允许任意类型作为键,保持插入顺序,解决了对象键类型受限和顺序不可靠的问题。两者均基于哈希表实现,性能优越:Set适用于去重和存在性检查,Map适合键值对存储和元数据关联。相比对象和数组,它们在特定场景下具有明显优势,是现代JS开发的重要数据结构补充。

2026-01-07 11:15:44 866

原创 【前端优化实践】封装可复用的SVG图标组件

摘要:原始SVG图标存在代码臃肿、维护困难、一致性差和性能问题。通过封装SVG组件可简化使用方式,只需一行代码即可调用图标。实现方案包括:1)动态导入所有SVG文件;2)创建可复用组件,支持参数化调用;3)添加watch监听实现动态更新。组件化后显著提升了代码简洁性、维护便利性和性能表现,将100+行代码简化为1行调用,同时确保图标风格统一。该方案适用于各类需要复用SVG图标的场景。

2025-12-29 14:48:47 267

原创 【每天搞懂一个 JavaScript 问题】什么是Symbol(JS中如何实现私有属性)

摘要: Symbol 是 ES6 引入的原始数据类型,用于创建唯一标识符,解决对象属性名冲突问题。通过 Symbol 可以实现真正的私有属性,避免传统命名约定(如 _sum)或闭包的局限性。示例中,成绩对象的辅助方法 sum 被定义为 Symbol 属性,外部无法直接访问,确保封装性。Symbol 不可枚举,常规遍历方法无法获取,但可通过 Object.getOwnPropertySymbols 读取。此外,Symbol.for() 支持创建全局共享的 Symbol。Symbol 的唯一性、私有性和不可变性

2025-12-29 11:20:39 971

原创 【每天搞懂一个 JavaScript 问题】什么是事件

本文介绍了事件驱动编程在前端开发中的核心作用。主要内容包括:1)事件三要素(事件源、类型、处理函数)和常见事件类型;2)两种事件注册方式的优缺点比较;3)事件对象的应用,包括阻止默认行为和传播机制;4)事件传播的三个阶段(捕获、目标、冒泡)及其应用;5)事件委托的实现原理和性能优势。通过理解这些关键技术,开发者可以更高效地实现网页交互功能,优化代码性能,使网页真正"活"起来。

2025-12-28 14:51:07 654

原创 【每天搞懂一个算法问题】合并两个有序链表

新手学习链表,做题没思路?看着一篇文章就够啦!详细讲解如何合并两个有序链表,提供了迭代法和递归法两种解法。迭代法通过虚拟头节点和双指针遍历比较节点,逐步构建新链表;递归法则通过"前行剔除,回溯连接"的思路实现。

2025-12-28 08:36:28 1130

原创 【每天搞懂一个JavaScript问题】今天学习 WebAPI(什么是 BOM 和 DOM)

WebAPI是浏览器提供的接口,分为BOM和DOM两部分。BOM提供浏览器操作功能,DOM则将HTML文档解析为树形结构,允许开发者通过document对象操作网页内容和结构。

2025-12-26 10:44:54 995

原创 【每天搞懂一个JavaScript问题】什么是原型

JavaScript中,每个函数都会有一个对象属性 prototype,称为原型对象// 输出原型对象原型链众所周知,所有对象都是 new 出来的。我们的原型对象也不例外。正常情况,原型对象是通过 Object 创建出来的有这个理论基础,再看 Students 构造函数,它创建的实例 s1 指向了 Students 上的原型,而 Students 上的原型指向了 Object 上的原型,Object上的原型最终指向了 null。

2025-12-25 15:20:14 968

空空如也

空空如也

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

TA关注的人

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