自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【JavaScript】寄生组合继承详解

寄生组合继承是一种改进版的组合继承,它通过解决了Parent构造函数调用两次的问题,使得 JavaScript 继承更加高效。尽管 ES6 的class语法在现代开发中更常见,但理解寄生组合继承的原理有助于深入掌握 JavaScript 的继承机制。

2025-03-20 22:25:08 821

原创 【JavaScript】继承的实现方式详解

继承方式主要特点优点缺点原型链继承让子类prototype指向父类实例方法共享共享引用属性构造函数继承使用call调用父类解决共享问题,可传参方法无法复用组合继承构造函数 + 原型链解决共享问题调用两次父类构造函数寄生组合继承最优 ES5 方案解决所有问题代码略复杂ES6class继承最现代化方案语法简洁,推荐使用仅限 ES6+在现代 JavaScript 开发中,建议优先使用 ES6class继承,但在需要兼容旧浏览器时,可以使用寄生组合继承。

2025-03-20 22:14:41 988

原创 【JavaScript】构造函数 vs. 工厂函数:彻底解析

构造函数(Constructor Function)是一种用于创建对象的特殊函数。使用new关键字调用约定以大写字母开头(例如Personthis指向新创建的对象省略return,默认返回this${this`);// Alice工厂函数(Factory Function)是一种返回对象的普通函数,它不使用new关键字,而是手动返回一个对象。`);// Bob构造函数。

2025-03-20 22:00:55 839

原创 【JavaScript】创建对象的方式详解

对象是一组键值对(key-value pair)的集合,其中键是字符串(ES6 之后也可以是 Symbol),值可以是任何数据类型,包括字符串、数字、数组、函数,甚至是另一个对象。对象是 JavaScript 处理数据的核心结构,可以看作是键值存储的容器。// 输出: Hello, my name is Alice`);// 输出: Hello, my name is Alice在这个例子中,personnameage和greet,其中greet。

2025-03-20 21:57:48 626

原创 【JavaScript】数组的随机排序方法详解

本文介绍了 JavaScript 实现数组随机排序的几种方法,包括sort()方案、Fisher-Yates 洗牌、map()sort()reduce()splice()以及 Web Worker 方案。对于小型数组,可以直接使用sort(),但 Fisher-Yates 是更优的通用方案。在大数据量情况下,Web Worker 方案能提升性能。

2025-03-20 21:29:58 599

原创 【JavaScript】生成随机数的各种方法详解

是 Web Crypto API 提供的安全随机数生成方法,适用于需要更高随机性和安全性的场景,如密码学应用。在某些场景下,我们希望随机数是可预测和可复现的,比如游戏随机种子、数据模拟等。这时可以使用seedrandom库。:适用于一般性随机数需求,但不适合高安全性场景。:适用于高安全性需求,如密码生成。Node.js:适用于服务器端高安全性随机数生成。seedrandom:适用于需要可复现随机数的场景,如游戏随机种子。

2025-03-20 16:45:59 540

原创 【JavaScript】标签语法详解

在 JavaScript 中,标签(Label)是一种可以用于标记代码块的标识符,通常与break和continue语句配合使用。labelName是自定义的标签名称,命名规则与变量命名规则相同。statement是与标签关联的代码语句,通常是一个循环或者代码块。

2025-03-20 16:07:04 695

原创 【JavaScript】如何给浮点数添加千分位逗号

适合简单场景,且能自动适配不同地区格式。正则表达式方法适合大部分场景,代码简洁且性能较高。提供更强的格式化能力,适合国际化应用。手动实现方法适用于所有环境,适合对格式有特殊需求的场景。

2025-03-19 11:08:32 573

原创 【JavaScript】字符串转数字的多种方法详解

parseInt()适用于解析整数,可解析不同进制。适用于解析浮点数,支持小数点和科学计数法。Number()和适用于转换完全有效的数字字符串。结合Math方法进行取整。

2025-03-19 10:29:38 695

原创 【JavaScript】== 操作符的强制类型转换规则详解

=允许不同类型的值进行比较,并会尝试强制类型转换。null和undefined仅彼此相等,与任何其他值都不相等。Boolean值会转换为0或1再进行比较。String与Number进行比较时,String会转换为Number。Object在比较时会转换为原始值(通常是toString()或valueOf()结果)。Symbol不能与非Symbol值进行宽松相等比较。建议优先使用===,避免不必要的隐式类型转换。

2025-03-19 10:14:29 825

原创 【JavaScript】Symbol 及其强制类型转换详解

Symbol 是 ES6 引入的一种原始数据类型,它的主要特点是唯一性和不可变性。与字符串或数值不同,每个 Symbol 值都是独一无二的,即使创建时传入相同的描述字符串,它们依然是不同的值。// false在上述代码中,尽管 sym1 和 sym2 具有相同的描述符(description),它们依然是不同的 Symbol 值。return {})// 1, 2, 3Symbol 是 JavaScript 中的一种特殊数据类型,具有唯一性和不可变性的特点,主要用于创建对象的私有属性。

2025-03-19 09:30:11 710

原创 【JavaScript】位运算符 ~ 的作用详解

JavaScript 的(按位取反)运算符虽然不常用,但它具有一些独特的用途判断indexOf结果是否为-1二进制掩码、标志位处理特定布尔值转换尽管它在 ES6 之后的应用场景减少,但在某些低级优化和位运算场景下依然有一定价值。

2025-03-19 09:16:46 933

原创 【JavaScript】其他值到布尔类型的转换规则详解

显式转换:使用或者!!value进行强制转换。隐式转换:在逻辑运算、条件判断(如)、三元运算符(condition?)等场景下发生。所有值在转换为布尔类型时,最终都会变成true或false。JavaScript 将值分为“真值(truthy)”和“假值(falsy)”两类。JavaScript 将值分为truthy和falsy,在逻辑运算中会自动转换。7 种 falsy 值false0-0""nullundefinedNaN。其他所有值(非零数字、非空字符串、对象、数组、Symbol。

2025-03-18 20:20:34 843

原创 【JavaScript】其他值到数字值的转换规则详解

JavaScript 在不同场景下会对非数值类型进行隐式或显式转换,了解这些转换规则有助于避免错误,提高代码的可预测性。尽量避免依赖隐式转换,使用显式转换确保代码行为符合预期。

2025-03-18 16:59:05 324

原创 【JavaScript】其他值到字符串的转换规则

String()是显式转换的首选方式。toString()可用于大多数情况,但null和undefined需要特殊处理。操作符会进行隐式字符串转换。Symbol不能隐式转换为字符串。可用于将对象转换为 JSON 格式。

2025-03-18 16:48:58 937

原创 【JavaScript】isNaN 和 Number.isNaN 的区别详解

NaN(Not-a-Number)是 JavaScript 中的一个特殊值,表示无法计算出合法的数值。例如,0 / 0或都会返回 NaN。typeof NaN仍然是number,尽管它表示“不是数字”。NaN 与任何值都不相等,包括它自身,即NaN!== NaN。isNaN(NaN)返回true。方法是否进行类型转换只检测 NaN 本身可靠性是否低(可能误判)否是高(仅检测 NaN)

2025-03-18 16:32:33 796

原创 【Linux】Screen 详解与实用指南

screen会话管理:可以在一个终端窗口中运行多个会话,并在不同的会话之间自由切换。后台运行:允许进程在后台持续运行,即使用户断开 SSH 连接,进程依然不会被终止。多用户共享:可以让多个用户同时连接到同一个screen会话,适用于协作操作。简单来说,screen可以让你在 Linux 终端环境下更方便地管理多个任务,避免因连接断开而丢失进程。screen是一个强大的终端会话管理工具,适用于服务器管理、远程运维和长时间运行的任务。掌握screen。

2025-03-18 11:38:38 711

原创 【Linux】.bashrc 文件详解

bashrc 是 Bash Shell 运行时读取的一个初始化文件,其全称是。它在用户启动交互式非登录 Shell(如打开终端)时自动执行,用于配置环境变量、别名、提示符等。别名可以简化命令输入,提高效率。alias rm='rm -i' # 删除前询问确认\u:当前用户名\h:主机名\w:当前工作目录Today is$(date这样就可以使用直接创建并进入文件夹。

2025-03-14 16:27:18 405

原创 【Linux】修改 pip 的临时目录方法详解

在 Linux 系统中,pip 在安装 Python 包时会使用临时目录(TMPDIR),但默认的临时目录可能会受到存储空间不足或权限问题的影响。因此,我们可以通过修改 TMPDIR 环境变量来指定一个合适的临时目录,以确保 pip 能够正常工作。如果不想修改全局 TMPDIR 变量,而只希望在运行 pip 命令时使用特定的临时目录,可以使用。同时,可以在安装 Python 包时观察 pip 是否使用了新的临时目录。在 SSD 或更快的磁盘上设置临时目录,可以提高 pip 安装包的速度,尤其是当。

2025-03-14 16:16:36 333

原创 【Anaconda】envs_dirs 与 pkgs_dirs 详解

Conda 是 Anaconda 生态中的核心工具,它不仅是一个包管理器(类似于pip),还提供了强大的环境管理功能。使用 Conda,你可以创建多个独立的 Python 环境,每个环境都可以安装不同的 Python 版本和依赖库,从而避免依赖冲突。# 创建 Python 3.9 的新环境# 激活环境# 删除环境在 Conda 中,所有创建的环境都会存储在envs_dirs指定的目录中,而所有下载的 Python 包和依赖项则存储在pkgs_dirs指定的目录中。envs_dirs。

2025-03-14 14:48:56 937

原创 【Python】pip 中 global.cache-dir 详解

是 pip 的全局缓存目录,它的主要作用是存储下载的包文件和构建过程中生成的缓存,以加快后续的安装速度。

2025-03-14 13:52:44 879

原创 【Anaconda】Conda 配置与环境管理---深入解析 ~/.condarc、conda info 与 conda config

/.condarcenvs_dirs指定 Conda 环境存储位置pkgs_dirs指定 Conda 下载软件包的缓存目录这对于磁盘空间管理特别重要,例如,如果你的/home目录空间有限,可以把 Conda 环境和软件包存储到大容量的磁盘上。

2025-03-14 13:04:33 887

原创 【JavaScript】Map 与对象的区别及迭代方式解析

JavaScript 中的 Map 和对象(Object)都是用于存储键值对的数据结构,但它们在底层实现、性能、适用场景等方面存在显著区别。在某些情况下,对象的键顺序可能与插入顺序不同,而 Map 总是按照插入顺序维护键值对,这在需要顺序遍历时非常重要。使用哈希表实现,查找和删除操作的时间复杂度通常为 O(1),而对象的查找可能涉及哈希冲突或原型链查找,可能更慢。对象的键会被强制转换为字符串,而 Map 则保持键的类型,这使得 Map 在存储复杂数据时更具优势。Map 提供了更直接的迭代方式,如。

2025-03-14 12:39:13 847

原创 【Linux】修改 pip 和 conda 的缓存路径详解

是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率。适当地修改它们的缓存路径,不仅可以优化存储管理,还可以在存储空间有限(如树莓派、Docker 容器)时更好地利用外部存储。是 Python 官方的包管理工具,在安装 Python 包时,会将下载的。也允许用户修改缓存路径,以优化存储使用或提高环境管理的灵活性。包,它还会缓存解压后的包,以加速后续的环境创建和更新操作。如果你只想在当前终端会话中修改缓存路径,可以使用环境变量。下载的包缓存、索引缓存以及未使用的环境文件。

2025-03-13 21:47:20 756

原创 【JavaScript】splice() 和 slice() 方法详解

splice()方法用于添加、删除或替换数组中的元素,并且会直接修改原数组。start(必填):指定要修改的起始索引。(可选):指定要删除的元素个数。(可选):要插入到数组中的新元素。slice()方法用于从原数组中提取部分元素,但不会修改原数组。start(必填):提取的起始索引。end(可选):提取的结束索引(不包含end位置的元素)。

2025-03-09 19:42:46 1046

原创 【ACM Reference Format】格式问题详解与修改指南

ACM 提供了严格的格式要求,确保文献引用、页眉、页脚等部分的统一性。本文将介绍 ACM Reference Format 中常见的格式问题,并提供详细的解决方案,帮助您轻松应对这些问题,确保您的论文符合 ACM 的排版标准。推荐的做法是将 ISBN 和 DOI 的值设置为空,而不是直接注释掉相关代码。在使用 ACM-Reference-Format 样式时,您可能会遇到引用顺序与论文中实际引用的顺序不一致的问题。确保将此命令放在文档的导言部分,这样就可以正确显示所需的作者简称。文件)中的排序设置造成的。

2025-02-27 11:15:38 1083

原创 【React】什么是无头 CMS

传统的内容管理系统(CMS)通常将内容的创建、存储和呈现在一个整体架构中进行管理,即“头部”和“身体”紧密耦合。这种方式虽然直观,但在需要将相同内容发布到多个平台时,往往会遇到重复开发、维护困难等问题。无头 CMS 将内容的存储和管理与呈现层分离,内容通过 API 提供给前端应用程序。这种架构使得开发者可以使用不同的技术栈和框架来构建前端应用,而不受限于 CMS 的内置模板或呈现方式。

2025-02-21 19:04:15 990 1

原创 【React】Sanity:现代化的无头内容管理系统

Sanity 是一个现代的无头内容管理系统,旨在通过结构化内容的方式,帮助企业在各种渠道上重复利用内容。它采用模块化的方法,使企业能够连接到任何第三方技术、数据源和前端框架。通过 Sanity,您可以使用 API 来管理文本、图像和其他媒体内容。在 Sanity 中,内容的结构通过模式(Schema)来定义。您可以在项目的schemas目录中创建和管理这些模式。例如,创建一个postfields: [},},},],

2025-02-21 19:03:14 740

原创 【HTML】section

sectionsection是 HTML5 引入的语义化标签之一,表示文档中的一个独立区域(section)。通常,一个section代表一个主题相关的内容块,并且通常包含标题(<h1><h6>语法示例< section > < h2 > 关于我们 </ h2 > < p > 我们是一家致力于提供优质 Web 解决方案的公司。< section > < h2 > 关于我们 </ h2 > < p > 我们是一家致力于提供优质 Web 解决方案的公司。</

2025-02-21 16:50:44 587

原创 【TypeScript】Promise 深入解析

Promise是 JavaScript 中一种用于处理异步操作的对象。它代表了一个未来才会完成的操作,通常用于网络请求、文件读取等异步操作的结果。PromisePending(待定):操作还未完成。Fulfilled(已完成):操作成功完成。Rejected(已拒绝):操作失败。在Promise完成时,我们可以通过.then()或.catch()方法来处理操作结果或错误。Promise还可以通过async和await语法来简化异步操作的处理。Promise。

2025-02-20 21:52:20 1598

原创 【TypeScript】解构赋值与类型注解的结合使用

解构赋值是一种从数组或对象中提取值的语法,赋值给变量。它使得从复杂的数据结构中获取数据变得更加简洁明了。// 数组解构// 输出: 1// 输出: 2// 对象解构// 输出: Alice// 输出: 25。

2025-02-20 21:01:48 670

原创 【JavaScript】HTMLFormElement详解

是一个表示表单元素的接口,继承自。访问和修改表单的属性,如actionmethod等。访问表单内的各个控件。执行表单的提交和重置操作。

2025-02-20 20:07:13 943

原创 【JavaScript】document 对象详解

在 Web 开发中,`document` 对象是连接 JavaScript 与网页内容的桥梁。通过操作 `document` 对象,开发者可以动态地访问和修改网页的结构、内容和样式,从而实现丰富的交互效果。

2025-02-20 19:52:08 922

原创 【HTML】 <button> 标签详解

button>标签用于定义一个可点击的按钮。与<input>标签创建的按钮不同,<button>标签可以包含丰富的内容,如文本、图像,甚至其他 HTML 元素。这使得开发者在设计按钮时拥有更大的灵活性。

2025-02-20 19:37:20 1245

原创 【HTML】<input> 元素详解

input>元素是 HTML 表单中最常见的元素之一,用于创建各种类型的输入控件,供用户输入数据。它是一个自闭合标签,通常嵌套在<form>元素中,以便在表单提交时传递用户输入的数据。

2025-02-20 19:13:32 727

原创 【Next.js】 <Form> 组件详解

Form>组件是 Next.js 扩展的 HTML<form>元素,旨在提供预获取加载 UI、客户端导航提交以及渐进式增强等功能。它特别适用于需要更新 URL 搜索参数的表单,减少了实现这些功能所需的样板代码。

2025-02-20 19:04:23 653

原创 【Next.js】ShadCN 组件库详解

ShadCN 是一个轻量级的 React 组件库,它基于Radix UI和构建,旨在提供一套高度可定制、现代化的 UI 组件。基于 Radix UI:提供无障碍支持的交互式 UI 组件,如 Dialog、Popover、Tooltip 等。深度整合 Tailwind CSS:组件样式基于 Tailwind CSS,便于开发者快速调整 UI 设计。开箱即用:组件经过优化,支持暗黑模式和响应式设计。本地化组件管理。

2025-02-20 16:48:30 963

原创 【Next.js】错误处理:预期错误与未捕获异常的处理方法

在开发过程中,错误是不可避免的,如何优雅地处理这些错误是提升应用稳定性与用户体验的关键。本文将详细介绍如何在 Next.js 中处理预期错误与未捕获的异常,包括使用。预期错误是可以预见的错误,这类错误应该被明确处理,而不是让它们未捕获或抛出异常。未捕获的异常是指程序中不应发生的错误,通常表明存在 bug。错误边界允许我们捕获子组件中的异常,并显示一个备用的 UI,而不是让整个组件树崩溃。处理预期错误,使用错误边界捕获未捕获的异常,以及如何进行全局错误处理。如果希望错误冒泡到父级错误边界,可以在渲染。

2025-02-18 21:40:24 1054 2

原创 【Next.js】布局与模板详解

布局在 Next.js 中是一种跨多个路由共享的 UI 组件。它们使得相同的界面元素(如页眉、侧边栏等)能够在不同页面之间保持一致,从而提升开发效率和用户体验。模板与布局的概念相似,都是用来包裹子路由和页面内容。但不同于布局,模板在路由导航时会为每个子组件创建一个新实例,这意味着每次导航时,模板会重新创建 DOM 元素并重置状态。模板文件与布局类似,通过或文件来定义。它通常会包裹一个子路由或页面,并且每次导航时都会重新创建新的组件实例。在这个模板中,每次路由切换时,children。

2025-02-18 21:24:05 917

原创 【Next.js】服务器组件与客户端组件详解

服务器组件(Server Components)是 React 18 引入的一项重要特性,它允许开发者在服务器端渲染组件,而非将所有渲染逻辑都交给客户端。服务器组件的最大优势在于能够显著减少客户端的 JavaScript 负担,从而提高应用的加载速度,尤其是在性能较弱的设备或慢速网络环境中。在 Next.js 中,服务器组件默认进行服务器端渲染(SSR),并且可以选择性地缓存渲染结果,从而提高性能。服务器组件适用于需要在服务器端处理数据、逻辑复杂或不需要频繁更新的部分。

2025-02-18 20:22:13 675

空空如也

空空如也

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

TA关注的人

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