自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 前端包管理/构建工具深度对比表

本文对比了前端开发中常用的包管理和构建工具,包括npm、yarn、pnpm、cnpm和gulp。从核心定位、优缺点、适用场景及注意事项进行全面分析:npm作为基础依赖管理工具生态最完备;yarn弥补早期npm缺陷,安装更快;pnpm采用硬链接技术性能最优;cnpm专为国内网络优化;gulp则专注于任务自动化。选型建议:小型项目用npm,中大型项目推荐yarn/pnpm,国内环境可配置镜像源,自动化任务根据复杂度选择gulp或webpack/Vite。工具间常搭配使用,各司其职。

2025-12-16 20:26:15 766

原创 白话讲透 Hooks:Vue/React Hooks 区别 + 使用场景(新手也能懂)

摘要: Hooks是前端开发中的逻辑复用工具,可将重复代码(如数据请求、表单校验)封装成独立函数,实现"一次编写,多处调用"。Vue(Composition API)和React的Hooks核心功能相似,但实现不同:React基于函数执行和依赖数组,需遵循严格调用规则;Vue则依赖响应式系统,更灵活。适用场景包括多组件复用逻辑、复杂组件拆分等。新手使用时需注意:React需避免闭包陷阱,Vue可自然响应数据变化。核心原则是让代码更简洁高效,而非盲目套用。(149字) 标签: #vue #

2025-12-09 12:18:33 895

原创 Vite 中的 import.meta对象详解

属性类型说明string当前模块的 URLobject环境变量,包含MODEPRODDEVSSR和自定义VITE_*变量function动态导入匹配特定模式的模块function立即导入所有匹配的模块object开发环境的热更新 API。

2025-07-06 23:59:36 1067

原创 .prettierrc.json 配置说明文档

.prettierrc.json是Prettier代码格式化工具的配置文件,用于统一项目代码风格。主要配置包括:代码宽度(printWidth)、缩进(tabWidth)、单双引号(singleQuote)、分号(semi)、尾随逗号(trailingComma)等基础规则,以及parser解析器、行尾符(endOfLine)等高级选项。典型配置示例如下: { "printWidth": 100, "tabWidth": 2, "singleQuote": true, "semi": false, "tra

2025-07-05 21:41:30 1094

原创 TypeScript中tsconfig.json的完整配置指南

tsconfig.json是TypeScript项目的核心配置文件,用于控制编译器的编译行为。主要包含项目结构配置(如files、include、exclude)和编译选项(compilerOptions)。编译选项又分为基础选项(target、module、outDir等)、严格类型检查选项(strict系列)和模块解析选项(moduleResolution、paths等)。通过合理配置这些选项,可以定制TypeScript的编译过程,满足不同项目的需求。

2025-07-04 21:26:46 1335

原创 前端包管理工具哪家强?npm、Yarn、pnpm 大比拼

在前端开发的世界里,包管理工具就像是我们的得力助手,帮助我们轻松管理项目中的各种依赖包。npm、Yarn 和 pnpm是目前最常用的三个包管理工具,它们各有千秋,也让不少小伙伴在选择时犯了难。今天,咱们就来详细唠唠这三个工具,看看谁才是最适合你的那一个!👀**特性npmYarnpnpm安装速度较慢,单线程安装快,并行安装且有缓存非常快,利用缓存和去重机制磁盘空间管理会重复安装依赖,浪费磁盘空间有缓存机制,但仍可能重复安装通过共享依赖显著节省磁盘空间。

2025-06-26 22:43:19 1044

原创 JavaScript闭包:从生活案例到代码实践

闭包:JavaScript的"记忆盒子" 📦 闭包是函数记住并访问其出生环境的能力,就像大脑能记住童年往事一样。它通过三个步骤形成:函数嵌套、内部引用外部变量、外层返回内层函数。 核心价值: 1️⃣ 保存变量状态(如计数器保持计数) 2️⃣ 保护数据隐私(隐藏内部变量) 3️⃣ 封装功能模块(避免全局污染) 典型应用场景: 防抖节流优化性能 🚀 柯里化函数实现参数分步传递 🧩 实现单例模式保证唯一实例 🏠 注意事项: ⚠️ 警惕内存泄漏风险(及时释放不再使用的闭包) ⚠️ 注意变

2025-06-18 20:24:45 1000

原创 JavaScript函数大比拼:普通函数VS箭头函数

摘要:JavaScript中的普通函数与箭头函数存在显著差异。普通函数使用function关键字,支持动态this、构造函数和arguments对象;而箭头函数语法简洁,采用静态this绑定,不支持构造函数和arguments。本文从语法、this指向、构造函数、参数处理等维度对比两者特性,并给出使用建议:简单逻辑优先用箭头函数,构造函数和方法类用普通函数。正确选择函数类型能避免常见错误,提升代码质量。

2025-06-18 20:20:42 878

原创 JavaScript中var、let和const的区别

摘要:JavaScript中var、let和const存在核心差异。var是函数作用域,允许变量提升和重复声明;let和const是块级作用域,存在暂时性死区,禁止重复声明,其中const还禁止重新赋值。建议优先使用const,可变变量用let,避免使用var。这些差异影响变量作用域、提升机制和赋值规则,合理使用能提升代码质量。(150字)

2025-06-18 20:17:43 788

原创 JavaScript Promise 全解析(四):sync/await与try...catch处理Promise错误的7种姿势

异步错误处理实战:7个JavaScript场景解析 本文通过5个典型场景演示async/await与try...catch的最佳实践: 用户认证流程的链式错误处理 批量数据请求的错误隔离策略 文件上传的进度监控与中断处理 数据库事务的自动回滚机制 第三方API调用的指数退避重试 关键技巧包括:统一错误捕获、差异化用户反馈、局部错误处理、资源清理、事务回滚以及智能重试策略。这些模式可显著提升异步代码的健壮性和用户体验。

2025-06-18 20:11:16 876

原创 JavaScript Promise 全解析(三):使用async/await结合try...catch处理Promise错误的完整指南

JavaScript异步编程中的错误处理:async/await与try...catch实践指南 本文系统讲解了在JavaScript异步编程中使用async/await与try...catch组合进行错误处理的方法: 基础用法:通过try...catch捕获单个await操作的错误,保持代码的同步风格 多请求处理: 连续await统一捕获错误 使用Promise.all处理并行异步操作 错误传播机制: 通过重新抛出异常实现错误向上传播 分层处理不同级别的错误 高级技巧: 实现超时控制机制 构建自动重试逻辑

2025-06-18 20:06:50 669

原创 JavaScript Promise 全解析(二):错误处理

本文系统介绍JavaScript Promise错误处理的核心方法与实践技巧。首先解析Promise的三种状态和错误传播机制,重点讲解.catch()方法作为链式调用中的统一错误处理方式。同时对比分析.then()第二参数的局限性,推荐使用async/await配合try...catch的同步式处理风格。针对并行任务场景,详细说明Promise.all()中如何处理部分失败情况。文章还提供了全局未捕获错误的监听方案,最后强调避免空catch块、区分可恢复/不可恢复错误等最佳实践,帮助开发者构建更健壮的异步程

2025-06-18 20:04:24 1042

原创 JavaScript Promise 全解析(一):从基础方法到实战应用

本文全面解析JavaScript Promise的核心方法与应用场景。首先介绍Promise的三种状态(pending、fulfilled、rejected),重点阐述了6个实例和静态方法:then()处理成功/失败状态,catch()专门捕获错误,finally()执行清理操作;Promise.all()并行处理多个Promise,Promise.race()获取最先完成的结果,Promise.any()返回第一个成功结果。文章对比了不同方法的应用场景和差异,并给出错误处理和性能优化建议。掌握这些方法能有

2025-06-18 19:59:10 681

原创 解锁 JavaScript 新视界:从语法糖到工程化实践

JavaScript 的快速发展为开发者带来了众多新特性,如可选链操作符 ?. 和空值合并操作符 ??,简化了代码逻辑并提升了可读性。在异步编程中,async/await 使得异步代码更易管理,避免了回调地狱。原型链与继承机制为面向对象编程提供了基础。此外,JavaScript 在数据可视化(如 D3.js)和全栈开发(如 Node.js)中展现了强大的应用能力。性能优化方面,代码压缩、Tree Shaking 和事件委托等技术有助于提升页面加载速度和响应性能。未来,随着 WebAssembly 和 ES

2025-05-09 22:00:36 435

原创 JavaScript 蓝桥杯算法实战:从入门到进阶的全栈攻略

JavaScript 在蓝桥杯竞赛中兼具灵活性与高效性,通过合理运用语言特性、优化算法逻辑,并注重原创性表达与细节处理,能够显著提升解题效率与代码质量。希望本文的实战经验与技巧能助你在竞赛中脱颖而出,斩获佳绩!💪排版说明:全文使用✨⚠️🔧等图标突出重点,代码块采用语法高亮,关键数据通过表格对比呈现,确保内容结构清晰、视觉友好,同时通过差异化表达和原创思考降低查重率。

2025-04-15 01:57:28 807

原创 TypeScript 完全指南:从基础到高级类型系统(二十)「TypeScript 的 ES6 类型」

TypeScript 通过泛型和接口,为 ES6 中的MapSetPromise集合类型:利用泛型Map<K, V>和Set<T>实现键值对和唯一值的类型约束,结合类型推断简化代码。异步编程Promise<T>明确异步操作的结果类型,async函数隐式返回Promise,提升异步代码的可读性和安全性。迭代协议:通过接口,规范可迭代对象的类型定义,确保for...of、扩展运算符等语法的类型安全。

2025-04-15 01:38:13 1010

原创 TypeScript 完全指南:从基础到高级类型系统(十九)「React,VUE2,VUE3 支持」

当我们在TypeScript项目中使用React库时,一个重要的步骤是引入React的类型定义。这就好比为一艘船配备精确的导航系统,让TypeScript能够准确理解React库中各种组件和属性的类型信息,从而在开发过程中进行有效的类型检查和智能提示。render() {// 正确,name属性值为字符串,符合Props接口定义// 错误,name属性类型应为字符串,不能是数字在这段代码中,通过语句,引入了React的类型定义文件react.d.ts。接着定义了Props接口,规定了。

2025-04-15 01:31:19 903

原创 TypeScript 完全指南:从基础到高级类型系统(十八)「TypeScript 项目与 npm 模块的融合应用」

在当今的前端开发领域,TypeScript 凭借其强大的类型系统和代码可维护性备受青睐。而 npm(Node Package Manager)作为 JavaScript 生态系统中不可或缺的包管理工具,拥有海量丰富的模块资源。但一个关键问题随之而来:npm 模块本质上均为 JavaScript 代码,即便某些模块最初是用 TypeScript 编写,为确保其能在不依赖 TypeScript 环境中正常运行,也必须编译为 JavaScript 代码后再发布。

2025-04-15 01:29:01 821

原创 TypeScript 完全指南:从基础到高级类型系统(十七)「tsc 命令行编译器」

tsc作为TypeScript官方提供的命令行编译器,肩负着两大关键使命:检查代码的规范性与准确性,并将TypeScript代码巧妙地转换为JavaScript代码,以适应更广泛的运行环境。tsc在工作时,默认会从当前目录中读取配置文件,从中获取编译所需的各项设置。不过,它也具备强大的灵活性,能够接受独立传入的命令行参数。这里有个重要的特性需留意:当命令行参数与中的设置存在冲突时,命令行参数将拥有更高的优先级,会覆盖掉配置文件中的相应属性。例如,若在命令行中明确指定了要编译的文件,tsc便会无视。

2025-04-15 01:25:01 833

原创 TypeScript 完全指南:从基础到高级类型系统(十六)「类型声明文件d.ts 文件」

在TypeScript的开发领域中,类型声明文件扮演着举足轻重的角色🎯。当我们使用单独的模块时,为了让模块的使用者能够清晰了解其外部接口,同时也便于编译器对使用方法进行正确性检查,通常会配套提供一个专门的类型声明文件📄。

2025-04-07 01:06:56 735

原创 TypeScript 完全指南:从基础到高级类型系统(十五)「配置文件tsconfig.json」

在TypeScript项目的开发旅程中,堪称一位至关重要的“领航员”🧭。它作为TypeScript项目的核心配置文件,稳稳地坐镇于项目的根目录。从某种意义上说,只要TypeScript“看”到某个目录中存在,便会毫不犹豫地将该目录认定为项目的根目录,犹如航海者找到了明确的航线起点。倘若你的项目源码是JavaScript,却渴望借助TypeScript的强大功能来进行处理,此时配置文件的名字会摇身一变成为。别被名字的变化所迷惑,实际上它的写法与如出一辙,就像同一款工具的不同“皮肤”,本质功能是一致的。

2025-04-07 00:56:03 1098

原创 TypeScript 完全指南:从基础到高级类型系统(十四)「类型断言」

在TypeScript的编程世界里,类型系统犹如一位严谨的守护者,时刻确保代码的类型安全。然而,对于那些未进行明确类型声明的值,TypeScript会施展它的类型推断魔法。但现实往往并非总是如我们所愿,它推断出的类型有时并非开发者心中所期望的。😕在上述示例中,代码的最后一行出现了报错情况。这背后的原因是什么呢🧐?原来是TypeScript将变量foo推断为string类型,而变量bar的类型被定义为。这里需要注意的是,string类型实际上是类型的父类型。

2025-04-07 00:38:21 670

原创 TypeScript 完全指南:从基础到高级类型系统(十三)「装饰器」

set?init?} | void;accessor 装饰器的value参数是一个包含get()方法和set()方法的对象。这个装饰器可以选择不返回值,也可以返回一个新的对象,用于取代原来的get()方法和set()方法。此外,装饰器返回的对象还可以包含一个init()方法,用于改变私有属性的初始值。

2025-04-07 00:31:17 903

原创 TypeScript 完全指南:从基础到高级类型系统(十二)「symbol (符号)」

Symbol可以用来定义元数据或者钩子,这些元数据或者钩子可以被其他代码使用,而不会与对象的其他属性名冲突。// 输出: This is a hook在这个例子中,myHook作为MyClass的一个属性,用来定义一个钩子函数。这个钩子函数可以被其他代码调用,而不会与MyClass的其他属性名冲突。在 TypeScript 中使用symbol类型作为对象的属性名,可以有效避免命名冲突,同时利用可以更精确地表示特定的Symbol值。结合方法,还能创建全局共享的Symbol。这些特性使得。

2025-04-07 00:07:53 547

原创 TypeScript 完全指南:从基础到高级类型系统(十一)「元组」

在 TypeScript 的世界里,元组(tuple)是一种独具特色的数据类型,而 JavaScript 并未对其进行单独区分。元组可以看作是成员类型能够自由设定的数组,也就是说,数组中各个成员的类型可以各不相同😎。

2025-04-06 23:58:57 1001

原创 TypeScript 完全指南:从基础到高级类型系统(十)「对象」

对象中的方法在TypeScript中通过函数类型来描述。x: number;y: number;// 或者写成} = {x: 1,y: 1,在上述示例中,对象obj拥有一个名为add的方法,我们明确地定义了它的参数类型和返回值类型。在实际开发中,我们可能会遇到对象属性众多,逐个声明类型极为繁琐的情况,或者无法预先知晓对象会包含多少属性(如外部API返回的对象)。此时,TypeScript的属性名表达式写法——“属性名的索引类型”便派上了用场🧩。

2025-04-06 23:53:48 889

原创 TypeScript 完全指南:从基础到高级类型系统(九)「函数」

函数的类型声明,需要在声明函数时,给出参数的类型和返回值的类型。txt:string):void {上面示例中,函数hello()在声明时,需要给出参数txt的类型(string),以及返回值的类型(void),后者写在参数列表的圆括号后面。void类型表示没有返回值,详见后文。如果不指定参数类型(比如上例不写txt的类型),TypeScript 就会推断参数类型,如果缺乏足够信息,就会推断该参数的类型为any。返回值的类型通常可以不写,因为 TypeScript 自己会推断出来。

2025-04-04 01:26:04 889

原创 TypeScript 完全指南:从基础到高级类型系统(八)「类」

在面向对象编程的世界里,类(class)就像是构建大厦的基石🧱,它将属性和方法封装在一起,为代码的组织和复用提供了强大的支持。而TypeScript作为JavaScript的超集,对类的特性给予了全面且细致的支持。

2025-04-04 00:53:47 981

原创 TypeScript 完全指南:从基础到高级类型系统(七)「模块」

在文件里,我们可以手动指定脚本模块的路径。baseUrl字段可以指定脚本模块的基准目录:上面的例子里,baseUrl是,表示基准目录就是所在的目录。📍paths字段可以指定非相对路径的模块与实际脚本的映射:"paths": {这样,加载jquery模块时,实际加载的脚本就是,它的位置是根据baseUrl字段计算出来的。注意,jquery属性的值是个数组,可以指定多个路径,第一个路径不存在就加载第二个,以此类推。

2025-04-04 00:27:52 984

原创 TypeScript 完全指南:从基础到高级类型系统(六)「命名空间(不推荐使用)」

在TypeScript的编程世界里,命名空间(Namespace)是一种用于组织相关代码的有效方式。它就像是一个容器🧳,把相关的变量、函数、类和接口等代码元素整合在一起,避免命名冲突,提高代码的可维护性和可读性。不过,需要注意的是,随着ES模块的出现,官方已经不推荐使用命名空间了,但了解它仍然有助于我们更好地理解TypeScript的发展历程和代码结构。

2025-04-04 00:19:20 841

原创 TypeScript 完全指南:从基础到高级类型系统(五)「类型映射」

在TypeScript的广阔天地里,类型映射是一项极具价值的特性,它就像一把神奇的钥匙,能按照特定规则,将一种类型巧妙地转换为另一种类型,尤其在处理对象类型时,其优势展露无遗。而借助类型映射,从类型。这里的“新类型”通常是一个模板字符串,在这个模板字符串里,我们可以对原始键名进行各种各样的操作。这样一来,就成功过滤掉了不符合条件的属性,只保留了属性值为字符串的属性。可看作是仅有一个成员的联合类型,最终得到了仅有这一个属性的对象类型。的映射,但在映射过程中巧妙地修改了属性名,在原始属性名后面加上了字符串。

2025-04-04 00:12:53 778

原创 TypeScript 完全指南:从基础到高级类型系统(四)「类型工具」

TypeScript的这些类型工具功能强大且实用,熟练掌握它们,能让我们在开发过程中如鱼得水,写出更健壮、更易维护的代码。无论是处理复杂的类型关系,还是对字符串进行灵活操作,这些工具都能提供有力支持。希望大家在日常开发中多多实践,充分发挥TypeScript类型工具的优势!💪以上就是本次关于TypeScript类型工具的全部内容啦,要是你在使用过程中有什么心得或者遇到的问题,欢迎在评论区留言分享呀!👇。

2025-04-04 00:05:01 677

原创 TypeScript 完全指南:从基础到高级类型系统(三)「类型缩小」

对于不同对象之间的区分,还可以人为地为每一类对象设置一个特征属性。break;e;break;通过设置type这个特征属性,在函数中,就能根据type的值轻松地缩小e的类型,方便后续的处理。is运算符返回一个布尔值,用于判断左侧的值是否属于右侧的类型。通过自定义类型判断函数,能更灵活地进行类型缩小。el;el;在这个例子中,函数通过判断el是否存在value属性,来确定el是否为类型。在函数中,利用这个判断结果,对el进行不同的处理。return x!Treturn x!

2025-04-03 23:58:35 715

原创 TypeScript 完全指南:从基础到高级类型系统(二)「从特殊类型到运算符的全面解析」

在 TypeScript 的世界里,类型系统是其核心魅力所在,它不仅增强了代码的可读性和可维护性,还能在编译阶段捕获许多潜在的错误。本文将深入探讨 TypeScript 中的特殊类型(anyunknownnever)以及各种强大的类型运算符,让你对 TypeScript 的类型系统有更全面的了解。

2025-04-03 23:50:18 913

原创 TypeScript 完全指南:从基础到高级类型系统(一)

TypeScript(简称 TS)是微软公司精心打造的一门编程语言,它构建于 JavaScript(简称 JS)的基础之上。其核心目标并非创造一门全新的语言,而是为 JavaScript 注入强大的功能,让它更契合多人协作的企业级项目。

2025-04-03 22:08:44 771

原创 学习 Node.js 读书笔记

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让 JavaScript 能够脱离浏览器环境,在服务器端运行。这意味着我们可以使用熟悉的 JavaScript 语言来开发后端应用,实现前后端统一语言编程,极大提高了开发效率。

2025-04-03 11:14:47 931

原创 前端技术:从基础到前沿的全面解析[特殊字符]

前端技术持续演进,从基础的 HTML、CSS、JavaScript 构建网页基石,到各类框架、工具助力高效开发,性能优化与安全防护保障用户体验与数据安全,再到面向未来的诸多趋势拓展边界、提升效率。作为前端开发者,需紧跟技术浪潮🌊,不断学习新知识、掌握新技能,将前沿技术融入项目实践,方能在这充满活力的领域立足,创造出更加卓越、易用、创新的 Web 应用,连接人与数字世界的无限可能🌈。

2025-04-03 11:01:22 780

原创 JavaScript 网页设计实战案例全解析

本案例将构建一个交互式的电影推荐网页。此项目综合运用了 HTML、CSS 和 JavaScript,旨在展示如何通过 JavaScript 实现网页的动态交互和数据处理。

2025-03-22 23:11:03 701

原创 Vue2与Vue3组件开发全维度对比实战指南

Options API 的优点易于学习和理解,对于初学者来说,清晰地将不同功能划分到不同选项中,降低了学习成本。代码结构清晰,每个选项的作用明确,便于维护和查找。Options API 的缺点当组件变得复杂时,代码会变得冗长,同一个逻辑关注点的代码可能分散在不同的选项中,导致难以理解和维护。代码复用性较差,难以提取和复用逻辑。Composition API 的优点逻辑复用性强,可以将相关的逻辑封装成函数,在不同的组件中复用。

2025-03-22 22:55:19 887

原创 前端工程化进阶:从 Gulp 到 Webpack 的范式革命

title: “10.使用Webpack”

2025-03-17 21:19:33 399

空空如也

空空如也

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

TA关注的人

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