自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【JavaScript】双问号(??)操作符详解

空值合并操作符 是一种逻辑运算符,用于在左侧表达式的值为 或 时,返回右侧的默认值。简单来说,就是: 是要检查的值; 是当 为 或 时使用的默认值;最终 的值是 或 ,取决于 是否为 或 。3. 简单示例在这个例子中,因为 是 ,所以最终 赋值为右侧的 “匿名用户”。如果 有一个实际的值,比如:那么就直接使用 的值,不使用默认值。在 出现之前,我们常常用逻辑或 来处理默认值,比如:问题是, 会把**所有假值(falsy value)**都当成无效,包括:上

2025-04-28 22:39:37 2165 1

原创 【Linux】VSCode Remote-SSH 无法连接并反复要求输入密码问题详解

Visual Studio Code(简称 VS Code)作为一款广受欢迎的轻量级编辑器,其 Remote-SSH 插件为开发者带来了便捷的远程开发体验。然而,在使用 Remote-SSH 插件连接远程服务器的过程中,很多用户会遇到输入密码后仍无法连接的问题,甚至被持续提示输入密码。Remote-SSH 插件在首次连接服务器时,会自动将一个小型的 vscode-server 程序上传至远程主机的。但令人困惑的是,即便通过终端可以正常使用 SSH 登录,Remote-SSH 插件却依然连接失败。

2025-04-24 12:34:46 1737 2

原创 【Git】git stash 命令详解:如何高效管理你的工作区修改

git stash临时保存当前工作目录和暂存区的修改(不包括未追踪文件和忽略文件),以便你可以在干净的工作区中切换分支、合并代码或进行其他操作。简单来说,stash 就像一个临时储物柜,你可以把当前的修改“塞进去”,等处理完其他事务后再“拿出来”。

2025-04-13 15:12:14 1483 1

原创 【JavaScript】apply 方法详解

在某些老旧的 JavaScript 引擎中(如 IE),apply 所支持的参数数组长度是有限的,如果数组太大(例如上万项)可能会报错。在 JavaScript 中,函数是一等公民(First-Class Object),这意味着函数本质上是对象,具备一些自带的方法,例如。它们都属于函数的“显式调用”方式,常用于动态改变函数的执行上下文(是函数对象(Function)自带的一个非常重要的方法,与。这是最常见的用法之一,尤其在一些回调函数或事件处理函数中使用。的第二个参数必须是一个数组或类数组对象(例如。

2025-04-13 11:16:29 1272

原创 【JavaScript】剩余参数语法(Rest Parameters)详解

剩余参数是 ES6 引入的一种语法形式,用于将函数的多余参数收集到一个数组中。语法上通过在函数参数前加上三个点...实现。// 输出 6// 输出 30在上述例子中,sum函数使用了剩余参数...numbers,无论传入多少个参数,它们都会被打包成一个数组numbers,从而可以统一处理。// ❌ 报错:Rest parameter must be last formal parameter// ✅ 正确。

2025-04-13 11:01:15 991

原创 【CSS】position 属性详解:深入理解五种定位方式

position是 CSS 中用于设置元素定位方式的属性。它决定了一个元素如何在文档流中定位,是否脱离正常的文档流,是否参照其他元素进行偏移等。static:默认值,元素处于正常文档流中。relative:相对定位,元素相对于自己原本的位置进行偏移。absolute:绝对定位,元素脱离文档流,相对于最近的定位祖先进行定位。fixed:固定定位,元素脱离文档流,相对于视口进行定位。sticky:粘性定位,结合了 relative 和 fixed 的特性。

2025-04-12 11:15:08 1529

原创 【React】深入理解 refs 的使用与应用场景

在 React 中,refs允许我们直接访问 DOM 元素或 React 组件的实例。通常,我们通过useRef(在函数组件中)或(在类组件中)来创建refs,并将其附加到 JSX 元素上。React 设计的核心理念是“单向数据流”,通常我们会使用state来驱动 UI 更新。获取 DOM 元素(例如,获取input输入框的值)管理焦点(比如,当组件加载时自动聚焦)存储可变值(避免state触发不必要的重新渲染)与第三方库(如 d3.js、Chart.js)交互。

2025-04-02 23:00:04 1063 1

原创 【JavaScript】严格模式 “use strict“; 详解

严格模式 (Strict Mode) 是 JavaScript 在 ECMAScript 5 (ES5) 中引入的一种运行模式。消除 JavaScript 语法中的不合理、不安全之处,减少意外错误的发生。提高 JavaScript 代码的执行效率,某些情况下 JavaScript 引擎可以进行更多优化。为未来版本的 JavaScript 语法变更做准备,避免某些新特性与旧代码冲突。显式启用,不会默认开启,必须手动添加。作用域可控,可以作用于整个脚本文件,也可以只应用于单个函数。严格模式 (

2025-04-01 22:16:11 1097

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

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

2025-03-20 22:25:08 936

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

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

2025-03-20 22:14:41 1306

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

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

2025-03-20 22:00:55 961

原创 【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 764

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

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

2025-03-20 21:29:58 796

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

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

2025-03-20 16:45:59 1404

原创 【JavaScript】标签语法详解

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

2025-03-20 16:07:04 1058

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

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

2025-03-19 11:08:32 785

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

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

2025-03-19 10:29:38 1502

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

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

2025-03-19 10:14:29 908

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

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

2025-03-19 09:30:11 802

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

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

2025-03-19 09:16:46 1105

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

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

2025-03-18 20:20:34 916

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

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

2025-03-18 16:59:05 416

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

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

2025-03-18 16:48:58 998

原创 【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 956

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

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

2025-03-18 11:38:38 1428

原创 【Linux】.bashrc 文件详解

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

2025-03-14 16:27:18 1412

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

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

2025-03-14 16:16:36 474

原创 【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 1492 1

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

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

2025-03-14 13:52:44 1003

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

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

2025-03-14 13:04:33 2022

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

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

2025-03-14 12:39:13 1004

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

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

2025-03-13 21:47:20 1083

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

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

2025-03-09 19:42:46 2037

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

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

2025-02-27 11:15:38 2320

原创 【React】什么是无头 CMS

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

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

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

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

2025-02-21 19:03:14 837

原创 【HTML】section

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

2025-02-21 16:50:44 807

原创 【TypeScript】Promise 深入解析

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

2025-02-20 21:52:20 1843

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

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

2025-02-20 21:01:48 747

原创 【JavaScript】HTMLFormElement详解

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

2025-02-20 20:07:13 1000

空空如也

空空如也

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

TA关注的人

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