摘要: 前言 数组特点 存储区间是连续,且占用内存严重,空间复杂也很大,时间复杂为O(1)。 优点:是随机读取效率很高,原因数组是连续(随机访问性强,查找速度快)。 缺点:插入和删除数据效率低,因插入数据,这个位置后面的数据在内存中要往后移的,且大小固定不易动态扩展。 链表特点 区间离散,占用内存宽松,空间 阅读全文
posted @ 2021-02-04 23:14 龙陌 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 在React中,通常我们不直接“暴露”组件内部的state给外部去监听或修改,因为这违反了组件设计中的封装原则。 然而,确实有需求让外部知道某个组件的内部状态变化,这时可以通过以下几种方式实现通信: 回调函数(Callback Function): 你可以通过传递一个回调函数作为prop从父组件到子 阅读全文
posted @ 2024-05-13 14:56 龙陌 阅读(4) 评论(0) 推荐(0) 编辑
摘要: .nojekyll 文件是一个用于GitHub Pages的特殊文件。当你在GitHub仓库的根目录中包含这个文件时,它会告诉GitHub Pages不要使用Jekyll来处理你的站点。 Jekyll是一个静态站点生成器,GitHub Pages默认使用它来将Markdown和其他文本格式的文件转换 阅读全文
posted @ 2024-05-12 17:24 龙陌 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 使用TypeScript编写一个函数getPackageSize,该函数接收一个配置对象packageOpt作为参数,用于获取指定文件夹中所有文件的总大小,并根据配置决定是否返回已转换单位的大小值或直接通过回调函数返回字节大小。 下面是一个基于Node.js环境的实现示例,因为直接在浏览器环境中操作 阅读全文
posted @ 2024-05-12 13:55 龙陌 阅读(2) 评论(0) 推荐(0) 编辑
摘要: F:\learn-front\code-inspector\package.json 这两行命令是用于在JavaScript项目中发布(publish)软件包到npm仓库的脚本定义,常见于使用pnpm作为包管理器的Monorepo(单仓库多项目)结构的项目中。 这里具体解释一下每部分的含义: pub 阅读全文
posted @ 2024-05-12 11:28 龙陌 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 关于e.stopPropagation(),大家应该知道这个方法是用来阻止事件冒泡的。 那么e.stopImmediatePropagation()可能比较少见。 stopImmediatePropagation 用来阻止在同一DOM对象上同一事件类型的其它事件函数的执行 并且与事件先后注册的顺序有 阅读全文
posted @ 2024-05-11 23:04 龙陌 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 终于明白了 Array.sort(comparator) 的原理 原文地址: https://www.jameskerr.blog/posts/javascript-sort-comparators/ After 13 years of JavaScript, I finally have a wa 阅读全文
posted @ 2024-05-10 22:39 龙陌 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 在CSS中,border-radius 用于创建元素的圆角边框,但边框圆角本身是包含在元素的总宽度和高度内的,并不会额外占用外部空间或使元素尺寸变大。如果你想让圆角“向外突出”,即不占用div本身的宽度和高度,可以通过一些技巧来模拟这种效果。 一种常见的方法是使用伪元素 (::before 和 :: 阅读全文
posted @ 2024-05-10 10:44 龙陌 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 该链接指向GitHub上一个SVG图像文件。根据链接的路径/long36708/blob/main/resources/img/grid-snake.svg,这个文件已经被放置在了名为long36708的仓库中的一个特定目录结构里。这里的路径说明了文件的组织方式: main 表示该仓库的默认分支(通 阅读全文
posted @ 2024-05-08 21:31 龙陌 阅读(4) 评论(0) 推荐(0) 编辑
摘要: state更新的是一个值List,但是页面渲染使用的是List中的某一项(当前选中项curItem),也定义成了state, 而更新状态时,只更新了List,忽视了当前选中项curItem的状态更新,导致视图没有更新, 即使组件重新渲染了,但是视图中使用的是curItem 解决方案:state中不要 阅读全文
posted @ 2024-05-08 09:25 龙陌 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 是的,React中的useEffect Hook 可以被用来作为“watch”监听特定变量或状态的变化,并在这些值发生变化时执行特定的操作。这是通过在useEffect的依赖数组中列出你想要监听的值来实现的。当依赖数组中的某个值发生变化时,useEffect的回调函数会被重新执行。 下面是一个简单的 阅读全文
posted @ 2024-05-07 19:11 龙陌 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 在JavaScript事件处理中,e.stopPropagation() 的作用是阻止事件向上冒泡到父元素,也就是说,它防止当前元素的事件继续传播到DOM树上的其他事件监听器。因此,它的位置对于事件流的行为至关重要。 将 e.stopPropagation() 放在 onChangeColor() 阅读全文
posted @ 2024-05-05 14:20 龙陌 阅读(1) 评论(0) 推荐(0) 编辑
摘要: crypto.randomUUID() 是一个函数,用于生成一个随机的通用唯一标识符(Universally Unique Identifier,UUID)版本 4。 这个函数常在编程中用于创建唯一的字符串标识,适用于各种需要唯一性的场景,如数据库记录、会话管理、临时文件命名等。 在不同的编程语言和 阅读全文
posted @ 2024-05-05 10:57 龙陌 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 在 .npmrc 配置文件中,unsafe-perm 和 package-lock 的设置有各自的作用: unsafe-perm = true: 此设置影响 npm(或 pnpm,如果使用该包管理器)在执行包脚本时的行为。 默认情况下,当以 root 或具有管理员权限的用户身份运行 npm 安装命令 阅读全文
posted @ 2024-05-01 23:04 龙陌 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 避免在useEffect的依赖数组中包含大量变量或对象,可以通过以下几种策略来优化: 拆分useEffect:如果不同的副作用依赖于不同的状态或变量,可以将它们拆分为多个useEffect调用。这样每个useEffect只关注自己关心的依赖项,使逻辑更加清晰且易于维护。 useEffect(() = 阅读全文
posted @ 2024-04-30 16:48 龙陌 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 在React中,决定使用useState、useRef或是直接定义变量,主要取决于你希望变量如何与组件的渲染周期互动以及是否需要持久化某些值。 直接定义变量 场景:如果你只是需要一个在函数内部临时存储数据的变量,而且这个变量的值不需要在组件重新渲染时保持不变,或者它并不直接影响UI的渲染逻辑,那么直 阅读全文
posted @ 2024-04-30 14:01 龙陌 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 在React中,useEffect和发布订阅模式(Pub/Sub)解决的是不同层面的问题,因此它们的使用场景也有所不同。 useEffect的使用场景 数据获取:当组件挂载后需要从服务器获取数据时,可以使用useEffect。同时,当依赖项发生变化时,它也能帮助重新获取数据。 副作用处理:任何需要在 阅读全文
posted @ 2024-04-30 13:58 龙陌 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 基于之前讨论的electron-store最佳实践,以下是一个更加完善和健壮的封装示例,包含了类型处理、默认值设定、以及一些实用方法,以适应更复杂的场景: // storeUtil.js const Store = require('electron-store'); const app = req 阅读全文
posted @ 2024-04-29 20:58 龙陌 阅读(66) 评论(0) 推荐(0) 编辑
摘要: SHA256(Secure Hash Algorithm 256-bit)是一种安全哈希算法,属于SHA-2系列,由美国国家安全局(NSA)设计并由美国国家标准与技术研究院(NIST)发布。 SHA256算法的主要目的是将任意长度的消息映射为一个固定长度(256位,即32字节)的哈希值,这个过程是单 阅读全文
posted @ 2024-04-29 20:44 龙陌 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 加签(Signing),在密码学中,通常指的是使用数字签名的过程。数字签名是一种验证信息完整性和来源的技术,类似于现实生活中在文件上手写签名以证明文件的真实性和不可否认性。 具体来说,加签涉及到以下几个关键步骤: 使用私钥签名:发送方(如A)使用自己的私钥对消息或文档的散列值(hash,即消息的固定 阅读全文
posted @ 2024-04-29 20:35 龙陌 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 在密码学中,“加盐”(Salting)是指在存储用户密码的哈希值之前,向原始密码添加一个随机生成的字符串(称为“盐”Salt)的过程。 这个盐值通常是全球唯一的,并且与每个用户账户相关联,存储在数据库中与哈希值一起。加盐的目的主要有两个: 抵御彩虹表攻击:彩虹表是一种预先计算好的哈希值对照表,用于快 阅读全文
posted @ 2024-04-29 20:32 龙陌 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 在Node.js中,你可以使用内置的os模块获取用户目录,并结合path模块来拼接特定的子目录路径。对于Windows环境下的AppData目录,你可以这样做: const os = require('os'); const path = require('path'); // 获取用户主目录 le 阅读全文
posted @ 2024-04-27 12:56 龙陌 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 即使不支持跨页删除,跨页多选仍然具有一定的意义,具体体现在以下几个方面: 1. 预览与标记 跨页多选可以让用户在浏览数据时标记感兴趣的项目,即使这些项目分布在不同的页面上。用户可以快速识别和收集相关信息,方便后续访问或与其他用户共享。即使无法立即进行跨页删除,用户也可以通过多选了解自己关注的数据范围 阅读全文
posted @ 2024-04-25 17:11 龙陌 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 支持了跨页多选并不一定意味着一定要支持跨页删除。虽然这两者通常会一起出现以提供完整的批量操作体验,但它们各自服务于不同的用户需求,可以根据具体情况独立考虑是否实现。 以下是支持跨页多选但不一定支持跨页删除的几种情况: 情况一:操作权限限制 在某些业务场景中,用户可能具有跨页选择数据的权限,但不具备跨 阅读全文
posted @ 2024-04-25 17:02 龙陌 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 是否有必要支持跨页多选以及筛选后是否需要保留之前的勾选,主要取决于您的应用程序的具体需求、用户体验预期以及技术可行性等因素。 下面分别从几个角度分析这两种情况: 跨页多选 支持跨页多选的优点: 提高操作效率:对于数据量大、分页多的情况,用户可以在不同页面勾选需要批量处理的项,无需一次性浏览完所有数据 阅读全文
posted @ 2024-04-25 16:58 龙陌 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 表格复选框的勾选状态在用户翻页后如何处理以及顶部的删除按钮作用范围(是仅删除当前页选中项还是包括前一页已选中的项),取决于应用程序的具体设计和实现方式。 通常存在以下两种情况: 仅删除当前页选中项: 如果应用程序设计为每次翻页后仅保留当前页面的选中状态,即不跨页记忆选中项,则顶部的删除按钮将仅针对当 阅读全文
posted @ 2024-04-25 16:51 龙陌 阅读(4) 评论(0) 推荐(0) 编辑
摘要: Defect Index (缺陷率): DI可以作为衡量软件质量的一项指标,它代表了软件中存在的问题严重程度的总和。 DI值的计算公式通常包括不同等级问题的加权计数: DI = 致命级别问题个数 × 10 + 严重级别问题个数 × 3 + 一般级别问题个数 × 1 + 提示级别问题个数 × 0.1 阅读全文
posted @ 2024-04-25 13:56 龙陌 阅读(92) 评论(0) 推荐(0) 编辑
摘要: JSONC,全称为 JSON with Comments,是一种对标准 JSON(JavaScript Object Notation)格式的扩展,允许在 JSON 文档中加入注释。在标准 JSON 中,注释是不被允许的,因为它们不符合 JSON 规范。JSONC 为了方便开发者在编写或维护 JSO 阅读全文
posted @ 2024-04-23 00:35 龙陌 阅读(31) 评论(0) 推荐(0) 编辑
摘要: POSIX(Portable Operating System Interface for Unix)命名方案是指遵循POSIX标准的一系列规范和约定,这些规范定义了操作系统中文件和目录的命名规则,旨在提高跨不同类Unix系统间的兼容性和可移植性。 以下是POSIX命名方案的关键要点: 字符集: 文 阅读全文
posted @ 2024-04-22 22:51 龙陌 阅读(10) 评论(0) 推荐(0) 编辑
摘要: bluebird 是一个高性能的 Promise 库,它扩展了 JavaScript 原生 Promise 的功能,提供了更为丰富、强大的 API 以及针对性能、错误处理等方面的优化。在以下几种场景下,推荐使用 bluebird: 大量并发的异步操作: 当您的应用涉及到大规模的并发请求、数据处理或者 阅读全文
posted @ 2024-04-22 00:30 龙陌 阅读(12) 评论(0) 推荐(0) 编辑
摘要: path.resolve、path.join、path.posix.join对比分析以及适用场景举例 path.resolve、path.join 和 path.posix.join 都是 Node.js 中用于处理和操作文件路径的方法,但它们各自有特定的功能和使用场景。以下是它们的对比分析和适用场 阅读全文
posted @ 2024-04-21 22:37 龙陌 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 在JavaScript中,如果你想将对象的键值设置为常量数值,首先需要定义这些常量。然后你可以在创建对象时使用这些常量作为键。 例如: // 定义常量 const KEY_ONE = 1; const KEY_TWO = 2; const KEY_THREE = 3; // 使用常量作为对象的键 l 阅读全文
posted @ 2024-04-21 19:19 龙陌 阅读(11) 评论(0) 推荐(0) 编辑
摘要: electron-log 与 console.log 都是用于在应用程序中记录信息的工具,但它们在功能、用途和应用场景上有显著的区别: console.log: 内置日志工具:console.log 是 JavaScript 语言提供的内置日志输出函数,适用于所有支持 JavaScript 的环境, 阅读全文
posted @ 2024-04-21 15:20 龙陌 阅读(67) 评论(0) 推荐(0) 编辑
摘要: electron-store 是一个用于 Electron 应用程序的轻量级、持久化数据存储库。它将数据以 JSON 格式保存到本地文件系统上。具体来说: 数据结构:electron-store 接受任何可序列化的 JavaScript 数据结构作为存储内容。这包括基本类型(如字符串、数字、布尔值) 阅读全文
posted @ 2024-04-21 15:15 龙陌 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 在React开发中,JSX.Element、ReactNode 和 ReactElement 这三个类型分别代表不同级别的React组件树中的元素,它们在不同的上下文中有着各自的用途。 以下是它们的区别及使用场景的概述: JSX.Element 定义: JSX.Element 是当你编写 JSX 语 阅读全文
posted @ 2024-04-21 14:46 龙陌 阅读(36) 评论(0) 推荐(0) 编辑
摘要: @electron/remote 包应该放在 dependencies 而不是 devDependencies。 dependencies 和 devDependencies 在 package.json 文件中分别用于指定项目的不同类型的依赖: dependencies: 存放项目在生产环境中运行 阅读全文
posted @ 2024-04-16 09:25 龙陌 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 是的,Math.js 库确实支持精确的小数计算。Math.js 是一个开源的 JavaScript 数学库,专为处理各种数学任务而设计,包括但不限于精确的小数运算。它提供了丰富的数学函数和常数,并且特别关注数值计算的准确性和可靠性,特别是在处理浮点数时。 浮点数在JavaScript中通常会导致精度 阅读全文
posted @ 2024-04-13 23:49 龙陌 阅读(13) 评论(0) 推荐(0) 编辑
摘要: export default function omit<T extends object, K extends keyof T>( obj: T, fields: K[] | readonly K[], ): Omit<T, K> { const clone = { ...obj }; if (A 阅读全文
posted @ 2024-04-10 21:35 龙陌 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 闭包陷阱通常是指在编程实践中,由于对闭包特性的误解或者不当使用所导致的一些常见问题和错误行为。 闭包虽然功能强大,但如果不正确地处理它们,可能会遇到以下几个典型的陷阱: 变量共享与持久化: 当多个函数通过闭包共享同一外部变量时,可能会因为意料之外的数据共享而导致数据冲突。例如,如果每个函数都应该有自 阅读全文
posted @ 2024-04-10 09:26 龙陌 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 在React代码中,有时候你会看到两种引用useEffect的方式,即React.useEffect和useEffect。 这两种形式实际上是等价的,它们都可以正常使用React Hook useEffect。 当直接使用useEffect时,这是因为Hook是在React模块内部导出的,因此在导入 阅读全文
posted @ 2024-04-09 22:51 龙陌 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 在React和TypeScript中,JSX.Element和React.ElementType代表了两种不同的概念: JSX.Element: JSX.Element 是一个类型,表示由JSX编译后生成的实际React元素对象。 当你在React应用中使用JSX编写组件时,每一个JSX表达式都会编 阅读全文
posted @ 2024-04-09 09:06 龙陌 阅读(39) 评论(0) 推荐(0) 编辑