更早的文章

共 38 篇 · 第 2 页
  1. Web

    JS中this的指向

    总结一下 的指向: 调用方式 示例 指向 解释 通过 调用 新对象 ,此时this指向 直接调用 全局对象 取决于运行环境,在浏览器中为 ,在node中为 通过对象调用 前面的对象 函数 的this指向 通过 / / 调用 第一个参数 ,此时this指向 由此可见,this的指向取决于调用方式,而不是函数定义方式。当你定义函数的时候, 的指向尚未确定。只有调用函数时,this的指向才会确定。

    继续阅读 →
  2. Web

    一文说清SKU算法的实现

    什么是SKU SKU(Stock Keeping Unit)是库存管理中的基本概念,指的是库存进出计量的单位,也是产品库存控制的最小可用单位。 SKU是商业运营中对商品进行管理和追踪的一种独特标识符,通常是由一串数字或字母数字组合而成的代码。 对于不同的商品,即使颜色、尺寸、款式等属性有所差异,也会被赋予不同的SKU号,这样就能在库存系统中精确区分每一种具体的产品变体。 业务场景 当我们在选择商品时,通常会根据用户每一次的选择,来找出其余属性是否能被选择,如果无法被选择,则需要将其置灰,避免用户…

    继续阅读 →
  3. Others

    使用Typescript实现一个LRU缓存算法

    1. 什么是 LRU 缓存算法 LRU(Least Recently Used)算法是一种常用的页面替换或缓存淘汰策略。它的核心思想是在资源有限的情况下,当需要添加新的数据项但存储空间已满时,优先淘汰最近最少使用的数据项,以保证最常访问或最近使用过的数据能够保留在缓存中。 2. 实现 LRU 算法的核心步骤 1. 数据结构选择 使用哈希表(如 HashMap)来实现 O(1)时间复杂度的查找和更新操作,用于存储键值对及其在缓存中的位置引用。 使用双端队列(Deque,例如 LinkedList)…

    继续阅读 →
  4. Web

    React深入理解

    React自从 React 16 版本引入 Fiber 架构后,渲染过程变得更加精细和可控。整个更新流程主要可以分为三个关键模块:Scheduler(调度器)、Reconciler(协调器) 和 Renderer(渲染器)。 关键模块 Scheduler(调度器) 调度器是React内部的一个核心模块,它负责决定何时以及如何执行更新任务。在React应用中,当状态发生变化时,会触发重新渲染,而调度器的作用就是根据任务优先级将这些更新任务排队。 Scheduler 遵循可中断的工作循环模型,允许高…

    继续阅读 →
  5. C/C++

    使用exiv2读取或者修改图片元数据

    0. 前言 开发环境为Windows,使用vcpkg安装exiv2库。关于vcpkg的安装,请参考vcpkg官方文档。 如果使用其他环境,请自行通过搜索引擎查找相关资料。 1. 安装 exiv2 2. CMmakeLists.txt 配置 3. 引入头文件 4. 读取图片元数据 5. 修改图片元数据 6. 完整代码

    继续阅读 →
  6. Web

    Typescript装饰器简介(下)

    在上一篇文章中,我们介绍了装饰器的基本概念,并通过一个简单的例子来展示了装饰器的使用方法。然后,Typescript同时支持装饰器的新语法和旧语法。本文来介绍Typescript的旧语法。 在本文中,所使用的语法均为旧语法。 1.装饰器配置 如果通过旧语法使用装饰器,需要在tsconfig.json中配置compilerOptions.experimentalDecorators为true。 2.装饰器的类型 属性装饰器 方法装饰器 参数装饰器 类装饰器 3. 装饰器语法 3.1 属性装饰器 3…

    继续阅读 →
  7. Web

    Typescript装饰器简介(上)

    1. 装饰器的作用 装饰器是一种特殊的声明,它可以被附加到类、方法或属性上,用来修改类,属性或者方法的行为。 2. 装饰器类型 类装饰器 方法装饰器 属性装饰器 Getter/Setter装饰器 accessor装饰器 3. 装饰器语法 目前TypeScript使用的语法是5.0引入的装饰器语法,Typescript同时支持两种语法,本文介绍新语法。旧语法会在下篇文章中介绍。 以下是几种装饰器的定义示例: 3.1 类装饰器 类装饰器接收两个参数:value和context。value表示被装饰的…

    继续阅读 →
  8. Others

    Mac终端部分快捷键

    快捷键 操作 ^ + A 移动光标至行首 ^ + E 移动光标至行尾 ^ + F 移动光标至下一个字符 ^ + B 移动光标至上一个字符 ^ + P 移动光标至上一行 ^ + N 移动光标至下一行 ^ + K 删除光标前一个字符 ^ + D 删除光标后一个字符 ^ + H 删除至行首 ^ + W 删除至下一个单词 ^ + U 删除至行首 ^ + Y 粘贴至上一行 ^ + T 交换光标处字符与上一个字符 ^ + G 移动光标至指定行 ^ + O 在光标处插入新行 ^ + I 在光标处插入新行 ^ …

    继续阅读 →
  9. Others

    使用GitHub Actions进行持久化构建

    日前Github新推出了一项功能Actions,可利用该功能进行持久化构建,该功能十分强大,我们可以利用它进行自动化测试、部署、持久化构建。 话不多说,我们来看一下具体怎么操作的吧? 首先当你将你的项目上传到GitHub上后,会发现有一个Actions的标签,如图所示: 然后我们点击这个标签 ,会看到一些推荐的工作流 ,可选的工作流还是挺多的,选择适合自己的工作流,由于我的项目是Vue,所以这里以NodeJS为例: 点击“Set up this workflow” 然后会让你编写你要构建的脚本,…

    继续阅读 →
  10. Others

    解决git使用push提交到远程仓库出现403错误的问题

    问题出现 由于电脑之前切换过github账号,此次git clone的项目是原有账号的项目,然后提交到远程仓库时就出现了如下错误: 解决方案 打开cmd,输入命令: ,出现存储的用户名和密码窗口 将github相关的条目删除 重新执行命令: ,提示输入账户名及密码后,成功。 参考资料 <https://blog.csdn.net/weixin33701294/article/details/86784224>

    继续阅读 →