随笔分类 -  随笔

something or anything
摘要:本文介绍了 ES Modules (ESM) 在浏览器环境中的运行原理,详细阐述了 ESM 的三大加载步骤:构建、实例化、求值,并讨论了其动态加载能力、循环依赖处理方式及与 CommonJS 的区别。 阅读全文
posted @ 2024-09-16 01:24 feixianxing 阅读(937) 评论(0) 推荐(0)
摘要:这篇笔记记录了循环队列的三种形式,以及它们如何判空、判满、计算元素个数。 阅读全文
posted @ 2024-09-02 22:55 feixianxing 阅读(298) 评论(0) 推荐(0)
摘要:当数组中存在空位时,遍历数组需要选择合适的方法,不同的方法可能返回不同的结果,有些方法会跳过空位,有些则会返回undefined。 阅读全文
posted @ 2024-09-02 20:44 feixianxing 阅读(209) 评论(0) 推荐(0)
摘要:这篇文章介绍了XSS跨站脚本攻击的基本含义与简要分类,以及介绍了基本的预防和检测手段。 阅读全文
posted @ 2024-09-02 17:00 feixianxing 阅读(232) 评论(0) 推荐(0)
摘要:Page Visibility API 可帮助检测用户切换页面,适用于考试或网课系统。本文介绍了 visibilitychange 事件和 document.visibilityState 的状态,并提供了基本的防作弊实现方法,如定期检查页面可见性和监听视频播放状态。 阅读全文
posted @ 2024-08-30 22:18 feixianxing 阅读(599) 评论(0) 推荐(0)
摘要:本文介绍了 JavaScript 中 ArrayBuffer 和 TypedArray 的应用。ArrayBuffer 用于预分配内存,存储二进制数据,但需通过 DataView 或 TypedArray 视图来读写。TypedArray 是定型数组,用于高效处理特定数据类型。DataView 则提供了更灵活的方式,适合在二进制文件处理、WebSocket 传输、WebGL 图形处理和音频处理等场景中使用。 阅读全文
posted @ 2024-08-29 15:55 feixianxing 阅读(353) 评论(0) 推荐(0)
摘要:本文介绍了Vue3中的setup函数的运行原理,并介绍了setup与选项式API共存时的处理原则。 阅读全文
posted @ 2024-08-25 16:56 feixianxing 阅读(371) 评论(0) 推荐(0)
摘要:Vue3 中的 patch 函数结合 diff 算法,通过比较新旧 vnode 序列,优化组件更新流程。diff 算法复用旧节点并最小化移动操作,利用最长递增子序列算法提升渲染性能,可以有效减少创建和销毁节点的开销。 阅读全文
posted @ 2024-08-21 23:31 feixianxing 阅读(322) 评论(0) 推荐(0)
摘要:本文介绍了发布订阅模式与观察者模式的区别,并使用 TypeScript 实现了发布订阅模式。 阅读全文
posted @ 2024-08-17 12:35 feixianxing 阅读(154) 评论(0) 推荐(0)
摘要:本文介绍了内存管理的基础知识,重点分析了栈区与堆区的区别,并详细讨论了V8引擎的内存管理机制,包括垃圾回收策略和优化技术。文章通过实例代码展示了堆区和栈区的内存变化,并探讨了v8如何通过并行、增量和并发技术优化垃圾回收性能。 阅读全文
posted @ 2024-08-15 23:58 feixianxing 阅读(378) 评论(0) 推荐(0)
摘要:本文比较了NPM、Yarn 和 pnpm 三种包管理工具的特点,重点分析了它们在安装速度、依赖管理、磁盘空间使用、依赖冲突处理等方面的差异,重点介绍了pnpm的依赖组织结构。 阅读全文
posted @ 2024-08-14 18:55 feixianxing 阅读(2303) 评论(0) 推荐(2)
摘要:本文解析了 Vue3 组件初次渲染的流程,涵盖应用程序初始化、核心渲染步骤,以及 vnode 的创建和渲染,探讨了 Vue3 内部机制及其跨平台实现的关键细节。 阅读全文
posted @ 2024-08-05 19:18 feixianxing 阅读(562) 评论(0) 推荐(0)
摘要:Vue2存在源码可维护性差、性能问题和API兼容性不足等缺点。Vue3通过monorepo管理、TypeScript开发、性能优化和引入Composition API等方式,显著提升了源码可维护性、编程体验、TypeScript支持和逻辑复用实践,从源码、性能和语法API三方面进行了优化。 阅读全文
posted @ 2024-08-04 02:39 feixianxing 阅读(327) 评论(0) 推荐(0)
摘要:Vue 3在编译template过程中,会通过patchFlags优化虚拟DOM更新,提升性能。这些标志通过位运算进行操作,包括动态文本、类、样式、属性、静态提升等。patchFlags的使用极大地提高了diff算法的效率。 阅读全文
posted @ 2024-08-03 18:24 feixianxing 阅读(245) 评论(0) 推荐(0)
摘要:这篇文章记录了在Vue3中如何在全局或者组件内部注册自定义事件,并通过阅读源码探索自定义事件的实现原理。 阅读全文
posted @ 2024-08-01 02:10 feixianxing 阅读(370) 评论(0) 推荐(0)
摘要:Babel 是一个多功能的 JavaScript 编译器,主要用于将现代 JavaScript 语法转换为向后兼容的代码。其工作流程包括解析(parse)、转换(transform)和生成(generate)三个步骤,最终生成兼容代码和源码映射。通过自定义插件,开发者可以灵活地操作 AST,实现代码转换。 阅读全文
posted @ 2024-07-31 18:05 feixianxing 阅读(247) 评论(0) 推荐(0)
摘要:本文介绍了堆这种数据结构的性质,以及堆排序算法,最后介绍了堆的相关应用场景。 阅读全文
posted @ 2024-07-28 00:55 feixianxing 阅读(50) 评论(0) 推荐(0)
摘要:本文由leetcode的字符异位词分组题目引入,记录了javascript中对象的键的数据类型以及存在的数据类型转换现象。 阅读全文
posted @ 2024-07-24 00:46 feixianxing 阅读(75) 评论(0) 推荐(0)
摘要:这篇文章介绍了浅拷贝和深拷贝的区别,以及如何在JS中实现深拷贝,最后使用Jest进行测试。 阅读全文
posted @ 2024-07-16 18:23 feixianxing 阅读(195) 评论(0) 推荐(0)
摘要:这篇文章介绍了Generator函数的基本使用,包括next方法与yield关键字、throw方法、return关键字及其对应的方法,说明了它们的用法、运行结果和各自的特点,并解析了它们的共同点。 阅读全文
posted @ 2024-07-13 17:34 feixianxing 阅读(101) 评论(0) 推荐(1)