JavaScript学习记录
文章平均质量分 65
头头不会敲代码
每天进步一点
展开
-
js中的 == 比较规则
在 js 中,== 是一种宽松相等运算符,它会在比较两个操作数时,尝试进行类型转换,以便比较它们的值如果类型不同是,两边的值都尽量转成number。原创 2023-12-29 22:36:29 · 431 阅读 · 0 评论 -
几种设计模式介绍
前言设计模式是一种用于解决软件开发中常见问题的通用解决方案,它可以提高代码的可读性、可维护性和可复用性。前端开发中也有很多应用设计模式的场景,比如处理异步操作、优化性能、封装复杂逻辑等。原创 2023-12-29 22:19:02 · 622 阅读 · 0 评论 -
react 为什么要重构架构
重构 React 的架构的主要原因是为了提高 UI 的渲染性能和用户体验,解决 CPU 和 I/O 的瓶颈,实现异步、可中断、可恢复、可优先级的更新流程,以及支持一些新的特性,如 Time Slice(时间分片)、Suspense(悬停)、Lazy Loading(懒加载)、Concurrent Mode(并发模式),所以react15递归、同步的更新执行是不支持的,重构就必须来了。原创 2023-12-28 16:27:52 · 1159 阅读 · 2 评论 -
react 代数效应 和 vue vm思想
前言React 的代数效应和 Vue 的 VM 思想是两种不同的编程模型,它们都试图解决 UI 开发中的一些挑战,如副作用管理、状态同步、组件抽象等。原创 2023-12-28 16:02:08 · 388 阅读 · 0 评论 -
vue中的事件绑定的过程
Vue中事件的绑定分为两种情况:原生DOM事件和组件事件。原创 2023-12-27 16:50:53 · 416 阅读 · 0 评论 -
vue&react中的副作用
前言副作用(side effect)是指在函数或组件中,除了返回值或渲染结果之外,对外部产生的影响。即一个动作引起的其他关联的动作,例如,修改全局变量、发送网络请求、操作DOM、打印日志等,都是副作用。vue和react是两种流行的前端框架,它们都使用虚拟DOM来提高渲染性能,但是它们对副作用的处理方式有所不同。vue的思想是响应式的:它通过对每一个属性建立Watcher来监听,当属性变化的时候,响应式地更新对应的虚拟DOM。它的数据流是发散的,即从变动的位置,发散到子父组件的任何相关联的地方;原创 2023-12-27 10:25:38 · 1002 阅读 · 0 评论 -
手写一个vuex?
vuex是一种专为Vue.js应用程序开发的状态管理模式,挂载在全局中,具有响应式特性。然后在app.js文件中引入使用。原创 2023-12-26 22:36:51 · 860 阅读 · 0 评论 -
vue2 diff算法:双端指针法
Vue2 双端指针法是一种 diff 算法,用来比较两棵虚拟 DOM 树的差异,并根据差异更新视图。原创 2023-12-26 22:17:08 · 596 阅读 · 0 评论 -
JavaScript 作用域
JavaScript 作用域是指在代码中定义变量的区域,它决定了变量的可见性和生命周期。全局作用域是指在代码的任何地方都能访问到的变量,它们被定义在 window 对象上。全局变量在页面加载时创建,页面关闭时销毁。局部作用域是指在函数内部定义的变量,它们只能在函数内部使用,函数外部无法访问。局部变量在函数执行时创建,函数结束时销毁ES6 引入了两种新的声明方式:let 和 const,它们与 var 相比,最大的区别就是它们具有块级作用域。块级作用域是指变量在最近的 {} 代码块内有效。原创 2023-12-21 16:45:59 · 396 阅读 · 0 评论 -
树摇是什么
树摇(Tree Shaking)是一种用于优化 JavaScript 或 TypeScript 代码的技术,它的主要目标是删除未使用的代码(即未引用的模块、变量、函数等),以减小最终生成的代码的体积。原创 2023-12-12 15:56:56 · 464 阅读 · 0 评论 -
6种常见的JS模块打包器
JS模块打包器是一种工具,它可以将多个JS文件或模块合并成一个或多个输出文件,以便在浏览器或其他环境中使用。原创 2023-12-08 17:31:09 · 2338 阅读 · 0 评论 -
Promise介绍
Promise是一种用于处理异步操作的JavaScript对象,它可以将生产代码和消费代码连接起来,让异步方法像同步方法一样返回值。异步操作是指在执行过程中可能会遇到延迟或等待的操作,例如网络请求、定时器、文件读取等。传统的JavaScript代码中,通常使用回调函数来处理异步操作的结果,但这样会导致代码的可读性和可维护性降低,以及出现回调地狱的问题。Promisepending:初始状态,既没有完成也没有失败fulfilled:操作成功完成rejected:操作失败Promise。原创 2023-12-01 17:02:07 · 416 阅读 · 0 评论 -
迭代器与生成器
是一个布尔值,表示是否已经遍历完序列。迭代器是一种对象,它可以按照一定的顺序遍历一个序列,并且可以在每次遍历时返回序列中的一个值。生成器是一种特殊的函数,它可以返回一个迭代器,通过使用。关键字来暂停执行,并返回一个值。在js中,迭代器必须实现一个名为。的特殊方法,该方法返回一个具有。方法的对象,该方法返回一个包含。语法来定义,函数中可以使用。是序列中的下一个值,原创 2023-12-01 16:29:39 · 871 阅读 · 0 评论 -
JavaScript 的 Proxy 介绍
Proxy 是一个用于创建对象代理的对象,它可以拦截和自定义对象的基本操作,比如属性查找、赋值、枚举、函数调用等。Proxy 的用途有很多,比如日志记录、验证、格式化、内存优化等。Proxy 是一个强大的特性,它可以让我们在 JavaScript 中创建和使用对象代理,实现数据的安全传输、动态修改、懒加载等功能。Proxy 提供了一些简单易用的捕捉器,让我们可以方便地拦截和自定义对象的行为。Proxy 还可以和 Reflect 对象结合使用,实现对象的默认行为。原创 2023-11-30 11:31:13 · 342 阅读 · 0 评论 -
Node.js 的 os 模块介绍
os 模块是 Node.js 内置的一个模块,它提供了一些与操作系统相关的实用方法和属性,比如获取系统信息、环境变量、用户信息等。os 模块是 Node.js 的一个重要的模块,它可以让我们在 Node.js 中获取和操作操作系统相关的信息和功能,比如获取系统信息、环境变量、用户信息等。os 模块提供了一些简单易用的方法和属性,让我们可以方便地访问操作系统的特性。原创 2023-11-29 22:38:03 · 1059 阅读 · 0 评论 -
Node.js 的 https 模块介绍
https 模块是 Node.js 内置的一个模块,它用于创建 HTTPS 服务器或客户端,支持 HTTPS请求和响应的处理和操作。HTTPS 是 HTTP 协议在 TLS/SSL 协议上的封装,它可以提供数据的加密、身份验证和完整性保护。https 模块是 Node.js 的一个重要的模块,它可以让我们在 Node.js 中创建和使用 HTTPS 服务,实现数据的安全传输,提高用户的信任度。原创 2023-11-29 22:25:54 · 1237 阅读 · 0 评论 -
浏览器垃圾回收机制的几种回收方法
浏览器垃圾回收机制是指浏览器对内存中不再使用的对象进行自动回收和释放的过程。浏览器垃圾回收机制的目的是为了防止内存泄漏,提高程序的性能和稳定性。浏览器垃圾回收机制是一个重要的话题,它涉及到浏览器的性能和稳定性,以及JavaScript的内存管理。浏览器垃圾回收机制的原理是基于可达性的概念,它有多种回收方法,比如标记清除、引用计数、分代收集、增量收集、闲时收集等。我们可以根据不同的场景和需求,选择合适的回收方法,优化我们的程序,提高用户体验。原创 2023-11-29 18:49:49 · 381 阅读 · 0 评论 -
node.js 的 fs 模块的介绍
fs 模块是 Node.js 内置的一个模块,它用于文件系统操作,包括文件读写、目录创建等。fs 模块提供了同步和异步两种方式的方法,异步方法通常以 Async 结尾,比如 fs.readFileAsync(),它们接受一个回调函数作为参数,用于处理异步操作的结果。同步方法通常没有 Async 后缀,比如 fs.readFileSync(),它们会阻塞程序的执行,直到操作完成,然后返回结果。一般来说,异步方法的性能更好,但是同步方法的逻辑更简单。原创 2023-11-29 16:07:37 · 596 阅读 · 0 评论 -
Node中的path模块
path模块是node的一个内置模块,它提供了一些方法来处理文件系统中的路径。在本文中,我将介绍path模块的常用方法,并给出一些示例代码。原创 2023-11-27 17:00:17 · 369 阅读 · 0 评论 -
Vite为什么更快
Vite之所以更快,主要得益于其独特的开发服务器和文件监听机制。首先,Vite利用了新版本浏览器可以读懂的ESM(ECMAScript Modules)模块化语法特点,在开发环境下,将项目中的模块化引入统一以一个接一个的http请求的方式响应给浏览器。这种做法省去了Webpack构建过程中递归做依赖收集的耗时步骤,显著提高了构建速度。显然是比webpack更快。在于处理文件之间的引入关系。原创 2023-11-22 17:04:24 · 45 阅读 · 0 评论 -
new 操作符的实现
【代码】new 操作符的实现。原创 2023-11-22 16:35:16 · 19 阅读 · 0 评论 -
javascript数据类型
JavaScript共有八种数据类型,分别是:Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt。堆和栈的概念存在于数据结构和操作系统内存中,原创 2023-11-03 23:53:03 · 21 阅读 · 0 评论 -
JavaScript创建对象的方式详解
在JavaScript中,对象是一种复合数据类型,它可以包含属性和方法。创建对象是JavaScript编程的基础之一。本文将详细介绍JavaScript创建对象的各种方式。原创 2023-11-03 23:35:16 · 45 阅读 · 0 评论 -
如何发布一个npm包
首先,我们需要了解npm包的基本结构。接下来,我们将详细介绍如何发布一个npm包。原创 2023-11-01 22:01:47 · 39 阅读 · 0 评论 -
深入理解JavaScript中的call、bind和apply
在这篇博客中,我们将介绍JavaScript中的call、bind和apply这三个函数方法,并解释它们的作用和用法。原创 2023-10-29 23:34:56 · 20 阅读 · 0 评论 -
常用react hooks介绍
在这篇博客中,我们将介绍一些常用的React Hooks,以及它们的定义和用途。原创 2023-10-28 15:05:30 · 39 阅读 · 0 评论 -
深入理解React Fiber原理
React 是一个流行的 JavaScript 库,用于构建交互式的用户界面。在 React 16 版本中,引入了一个名为 React Fiber 的新的核心算法。React Fiber 改进了 React 的渲染和调度过程,提高了性能,并使 React 具备了更好的时间分片和并发处理能力。原创 2023-10-28 14:49:40 · 272 阅读 · 0 评论 -
算法基础--插入排序
【代码】算法基础--插入排序。原创 2022-11-14 21:57:30 · 13 阅读 · 0 评论 -
JavaScript学习记录:Js实现简易虚拟Dom
虚拟Dom渲染函数原创 2021-12-27 17:41:49 · 2108 阅读 · 0 评论