- 博客(67)
- 资源 (4)
- 收藏
- 关注
原创 JavaScript 类型转换详解
JavaScript类型转换分为显式和隐式两种。显式转换通过Number()、String()、Boolean()等函数实现:Number()将字符串、布尔值等转换为数字(空字符串转0,非数字字符串转NaN);String()调用对象的toString()方法转换;Boolean()将空值、0等转为false,其余为true。隐式转换发生在运算符和条件判断中,如+可能触发字符串拼接,if语句自动转换布尔值。理解这两种转换机制对避免JavaScript开发中的类型错误至关重要。
2025-07-04 15:58:25
985
原创 JavaScript运算符深度解析 - 那些容易忽略的细节
本文深入解析了JavaScript运算符中易被忽略的重要细节。重点包括:取余运算符(%)的正负号与被除数一致;指数运算符(**)的右结合性;NaN与任何值比较都返回false的特性;触发隐式类型转换的运算符(如==、+等);void运算符总是返回undefined的特点;逗号运算符返回最后一个表达式的特性;以及运算符结合性问题。这些知识有助于避免潜在bug、编写更精确代码,并深入理解JavaScript的设计理念。掌握这些细节能让开发者更好地应对实际开发中的各种运算场景。
2025-07-04 15:57:11
519
原创 TerraFE 脚手架开发实战系列(一):项目架构设计与技术选型
本文介绍现代化前端脚手架工具TerraFE的开发设计与技术选型。针对前端项目初始化重复搭建、模板分散等痛点,TerraFE将提供项目创建、模板管理和配置系统三大核心功能。技术栈选用Node.js+Commander.js+Inquirer.js为核心,采用模块化架构设计,遵循单一职责等原则。文章详细阐述了项目目录结构、核心模块划分以及开发环境搭建步骤,并预判了GitHub模板下载、交互式配置等技术难点。作为系列文章的第一篇,本文为后续开发工作奠定基础,下期将重点介绍CLI工具的具体实现。
2025-06-14 22:12:08
868
原创 React 18 渲染机制优化:解决浏览器卡顿的三种方案
React 18引入的并发渲染机制通过将任务拆分到浏览器空闲期执行,可以有效解决UI卡顿问题。本文演示了三种优化方案:使用requestIdleCallback在空闲时段执行任务,通过requestAnimationFrame与屏幕刷新同步处理任务,以及利用MessageChannel实现任务调度。这些技术原理与React的并发渲染机制类似,都能在不阻塞用户界面的前提下完成大量计算任务。通过比较不同方案的实现效果,开发者可以更好地理解React 18内部如何实现高效渲染。
2025-06-11 23:08:28
1354
原创 React Context 性能问题及解决方案深度解析
本文深入解析React Context的性能问题及优化方案。核心问题在于Context的粗粒度更新机制导致不必要组件重新渲染,浪费CPU和内存资源。通过源码分析发现,React仅检测整个Context对象引用变化,无法选择性订阅属性。文章提出三种优化方案:1) 将大Context拆分为多个小Context实现精准订阅;2) 使用useMemo和useCallback减少渲染;3) 封装高阶Selector组件实现细粒度访问。这些方案可显著降低组件无效渲染,提升应用性能。
2025-06-11 22:16:43
1613
原创 从零开始搭建现代化 Monorepo 开发模板:TypeScript + Rollup + Jest + 持续集成完整指南
摘要:本文详细介绍如何从零搭建一个完整的Monorepo开发模板,涵盖TypeScript、Rollup打包、Jest测试等核心功能。首先创建项目结构并配置pnpm作为包管理器,然后设置TypeScript类型检查与模块解析策略。重点讲解了Rollup的多格式打包配置(ESM/CJS/UMD)和Babel转换方案,同时提供了Jest测试框架的配置方法。该模板采用现代前端工程实践,支持代码质量控制和CI/CD集成,为开发高质量可复用库提供了标准化基础架构。通过这种组织方式,可以显著提升多包项目的开发效率和维护
2025-06-10 21:27:39
1602
原创 深入解析 GitHub Token 与 NPM Token:自动化发布的完整指南
它是 GitHub App 安装访问令牌权限仅限于当前仓库令牌在作业结束时或最多 24 小时后过期通过 ${{ secrets.GITHUB_TOKEN }} 引用。
2025-06-10 21:26:30
1302
原创 docker buildx: faied to authorize: failed to fetch oauth token: Post “https://auth.docker.io/token
本文记录了Docker Buildx多平台镜像构建失败的排查过程。问题表现为构建时网络连接和构建器配置异常,错误信息显示代理连接被拒绝和认证失败。通过一系列检查,发现虽然单独拉取镜像成功但buildx构建失败,最终确认是构建器状态异常导致。解决方案包括删除问题构建器、切换到稳定构建器以及重新构建。文章总结了根本原因(网络路径差异、构建器配置问题和认证机制不同),并提供了最佳实践建议(构建器管理、网络配置和调试技巧)。整个过程展示了从网络、代理、构建器等多维度进行分层诊断的方法。
2025-05-29 15:04:17
3441
原创 使用cursor开发一个Dicom viewer
随着 AI 技术的迅猛发展,其已逐步渗透到人们生活的各个方面。对于开发工程师而言,若不尽早适应 AI 的变革浪潮,将可能被时代淘汰。本文将展示如何利用 AI 驱动的代码编辑器 Cursor 开发一个 DICOM 医疗影像浏览器(Viewer)。下图为我们将实现的经过实际操作体验,Cursor 具备相当强大的代码生成和智能辅助能力,可以大幅度加速项目开发。然而开发的效率和效果依赖于两个关键因素:使用者的表达能力:能够清晰准确地描述需求,帮助 AI 理解项目需求。
2024-10-27 23:57:13
968
原创 微信小程序-登陆
本文介绍了如何在微信小程序中实现用户登录功能。主要内容包括使用微信提供的 wx.login() 接口获取用户的临时登录凭证 code,并将其发送至服务器,通过与微信服务器交互获取用户的 openId 和会话密钥 sessionKey。随后在服务器端完成用户身份验证,实现登录功能。该流程为微信小程序开发提供了基础的用户管理能力,帮助开发者有效识别和管理用户。
2024-10-09 10:49:53
1159
原创 微信小程序接口实现语音转文字
我们有一个按钮,点击“开始录音”按钮,此时按钮变成“停止录音”并开始计时,点击停止录音后,界面上即可展示返回的文字。
2024-08-04 17:30:30
2518
原创 解决Browserslist: caniuse-lite is outdated.The code generator has deoptimised the styling of xxx as it
解决 Browserslist: caniuse-lite is outdated.解决 he code generator has deoptimised the styling of xxx as it exceeds the max of 500KB.
2024-06-05 23:13:57
923
原创 如何在镜像中安装固定版本的node和npm
最近在做前端工程化相关的内容,需要在一个镜像内安装固定版本的 Node.js 及对应的前端环境。接下来就记录一下,如何在 Docker 镜像内安装固定版本的前端相关环境。以下是详细步骤和代码示例。提示:以下是本篇文章正文内容,下面案例可供参考我们将使用 Docker 官方的 DinD(Docker in Docker)镜像作为基础镜像,然后在其上安装 Node.js 16.20、Npm、Nginx、Yarn 和 Pnpm 以及其他必要的软件包。# 使用 Docker 官方的 DinD 镜像作为基础镜像。
2024-06-02 18:48:01
1529
3
原创 解决MAC M1 Docker Desktop启动一直在starting
本文主要讲Docker Desktop如何开启Multi-platform;如何解决Docker Desktop一直在starting的时候
2024-06-02 18:05:46
2672
原创 webpack联邦模块介绍及在dumi中使用问题整理
webpack联邦模块使用Cannot read properties of null (reading 'useMemo')Error: Shared module is not available for eager consumptionerror - MFSU latest build error: AssertionError [ERR_ASSERTION]: dependence not found: xxxx问题解决方案
2023-07-27 21:26:48
1921
2
原创 css keyframes(css动画)在css_modules不生效解决方案
最近在项目(react)需要实现loading的动画,心想这不很简单么,结果发现动画怎么搞也不生效。
2023-04-06 09:00:00
1813
原创 超实用!!! 三分钟将你的项目部署在github page上
超实用!!!三分钟将你的vite/webpack项目部署到github page上
2023-03-21 20:50:43
2269
原创 解决 Public registration is not allowed 问题
解决😭😭😭 Public registration is not allowed 😭😭😭 问题
2023-03-15 21:17:47
4584
2
原创 解决docer login报错 panic: runtime error: invalid memory address or nil pointer dereference
解决docer login报错 panic: runtime error: invalid memory address or nil pointer dereference
2023-01-05 19:30:00
1605
原创 utbutu安装nvm node过程及问题记录
ubutu18.04安装nvm及node解决node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by node)问题解决Error: ENOSPC: System limit for number of file watchers问题
2022-12-21 20:37:47
932
原创 解决: docker mongo exception in initAndListen: 98 Unable to lock file: /data/db/mongod.lock
使用dokcer-compose部署了两个mongo,启动的时候报错。
2022-09-09 21:20:37
762
原创 解决:Webpack does not exit the program after finishing to compile
升级webpack5(5.72.1)配置后,发现webpack在生产环境build完成后不退出了。
2022-09-03 20:20:19
877
原创 解决npm public提示403 Forbidden - PUT https://registry.npmjs.org/js-toolkit - You do not have permission
npm ERR! code E403npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/js-toolkit - You do not have permission to publish "js-toolkit". Are you logged in as the correct user?npm ERR! 403 In most cases, you or one of your dependencies are requestin
2022-08-01 14:53:44
2468
原创 js 实现一个完美的toFixed(四舍五入)
toFixed函数可以满足一部分小数的四舍五入,但是因为浮点数不能精确地用二进制表示所有小数,所以toFixed四舍五入会在部分情况下出现异常。
2022-07-16 20:24:59
2048
5
tigervnc ubutu安装包
2023-04-27
chrom linux 77.0.3859.0版本
2023-04-07
mac slicer-5.0.3
2022-09-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅