本文通过可视化图表展示了 Bun 运行时中新增的 Rust 文件与现有的 JavaScript 及 C++ 代码之间的比例关系。作者对比了不同语言模块在项目中的体积分布,帮助开发者更直观地理解 Bun 在逐步引入 Rust 后的代码结构变化。
#javascript
30 条相关内容
制作一个“随机播放”按钮
0.5作者分享了他为自己的笔记博客(974条笔记)制作“随机播放”(Shuffle)按钮的过程。最初的做法是在每个HTML页面中嵌入所有笔记ID的列表,但每次发布新笔记都会导致所有页面缓存失效、重新部署,效率低下。经过方案权衡,他最终采用了一个独立HTML页面作为随机路由:用户点击“Shuffle”链接后跳转到该页面,页面内嵌JavaScript逻辑,在短暂延迟后随机跳转至一条笔记。作者特意加入300毫秒的延迟,模拟老式CD播放器“随机播放”时的“思考”过程,让用户清晰感知意图已被接收并执行。尽管这种方案显得“刻意缓慢”,但他认为这种反馈体验让交互更具人情味。
这是一个为 Klipy API 开发的类型安全 JavaScript/TypeScript SDK(软件开发工具包)。它利用 TypeScript 的类型系统确保 API 调用时的类型安全,帮助开发者在编译阶段捕获潜在错误,提升开发效率和代码质量。
本文深入探讨了面向对象编程(OOP)与实体组件系统(ECS)在内存布局和CPU缓存性能上的根本差异。作者通过JavaScript基准测试,分析了ECS如何通过改善数据局部性来减少缓存未命中,从而提升性能。文章不仅解释了ECS在游戏开发中的优势,还展示了即使在JavaScript这类高级语言中,内存访问模式依然对性能有显著影响。
ES2026 为 JavaScript 带来了一系列值得关注的新特性,涵盖数值分隔符(numeric separators)、Promise.withResolvers、Array 分组方法(groupBy)等实用功能。本文以简洁易懂的方式逐一介绍这些新特性的语法和实际应用场景,帮助开发者快速掌握并应用到日常编码中。
本文系统梳理了 2010 至 2020 年间 JavaScript 语言发生的重大变化,涵盖 ES6/ES2015 及后续版本引入的关键特性,包括 let/const 声明、箭头函数、模板字符串、解构赋值、默认参数、展开运算符、类语法、Promise 与 async/await、模块系统、Map/Set 数据结构以及 Symbol 类型等。文章面向熟悉旧版 ES5 的开发者,帮助他们快速补齐知识盲区,理解现代 JavaScript 的编写方式与最佳实践。
Domternal 是一款无头(headless)富文本编辑器,专为 Angular、React、Vue 以及原生 JavaScript(Vanilla)框架设计。它提供灵活的内容编辑功能,不绑定特定 UI,开发者可完全自定义编辑界面和交互体验。
xrblocks 是 Google 推出的一个开源 JavaScript 库,旨在帮助开发者快速构建人工智能(AI)和扩展现实(XR)原型。它提供了模块化的组件和工具,降低开发门槛,让创作者能够更高效地探索沉浸式交互体验。
GolemUI 是一个开源库,可通过 JSON 定义动态生成表单,并提供类型化层简化编写流程。其特点包括:JSON 引擎(定义可存入数据库、版本控制、差异比对或由 LLM 生成)、28 个无头组件(支持 CSS 变量与 Material/Shoelace 等框架集成)、带类型化的程序化表单编写层(自动生成 JSON)、同一定义可在 React/Angular/Vue/Lit/Vanilla JS 中渲染,以及用于验证模型输出的确定性 MCP 工具。
随着 CSS 新特性如 `:has()` 选择器、容器查询和视图过渡 API 的引入,过去只能通过 JavaScript 事件处理的交互逻辑,如今越来越多地可以在 CSS 层面实现。这种转变正在重新定义开发人员如何在状态管理和事件驱动行为之间划分代码边界,促使我们重新审视 CSS 与 JavaScript 在网页交互中的分工。
本文探讨了JavaScript中数组的.join()方法在特定使用场景下看似反直觉的行为。作者通过代码示例分析了当数组元素为undefined或null时,.join()会将其转换为空字符串而非抛出错误,这一特性在某些情况下可能导致隐蔽的bug。文章深入分析了这一设计背后的历史原因与权衡,并提供了更安全的替代方案。
本文探讨了 Slint UI 框架如何与 Node.js 事件循环集成。Slint 支持在 Node.js 环境中运行,但需要协调其自身的事件循环与 Node.js 的事件循环机制。文章介绍了 Slint 如何通过轮询和回调机制来处理事件循环的适配,确保 UI 渲染和 JavaScript 异步操作能够顺畅协同工作。
该项目将TypeScript/JavaScript代码可视化为交互式等轴测电路板,让程序员能够以立体电路的形式浏览和操作代码逻辑。通过将代码模块、函数调用和变量连接映射为电子元件与线路,提供了一种直观理解程序架构的新方式。
JSON 手册
1.0《JSON 手册》是一份全面介绍 JSON 数据格式的参考指南,涵盖其语法、数据结构、数据类型解析以及在不同编程语言中的序列化与反序列化方法。该手册旨在帮助开发者快速掌握 JSON 的核心概念与最佳实践,适合从初学者到有经验的工程师阅读使用。
许多开发者依赖 console.log 进行调试,但它在显示对象时可能产生误导:控制台打印的是引用而非快照,导致展开时看到的是对象的最新状态。本文剖析了 console.log 的常见陷阱,包括异步日志、引用类型显示错误、以及浏览器控制台的延迟求值机制,并提供实用的替代方案如 console.table、断点调试和结构化克隆来获得真实的调试信息。
这是一个在浏览器中忠实复刻 Atari ST 经典游戏 MIDI Maze 的项目。它完全使用 JavaScript 实现,力求还原原作的视觉效果、游戏机制和 MIDI 网络对战体验,玩家无需硬件即可在 Web 上重温这款早期多人第一人称射击游戏。
Ziscus 是一款为静态网站设计的评论系统,完全无需 JavaScript 即可运行。它通过纯 HTML 表单和后端处理实现评论功能,避免了 JavaScript 带来的性能和安全问题,同时保持了静态网站的简单性和速度。适合追求极简和高效能的静态站点开发者使用。
该文章分析了 jQuery 4.0 的性能表现,探讨了新版在速度、内存占用和 DOM 操作方面的优化与改进,并与现代原生 JavaScript 及其他轻量级库进行了对比,帮助开发者评估是否仍值得在项目中继续使用 jQuery。
在这段视频中,Svelte 框架的创始人 Rich Harris 分享了他对人工智能与前端框架融合的看法。他探讨了 AI 工具如何辅助开发者编写 Svelte 代码,以及 AI 在未来可能如何影响 Web 开发的工作流程和 Svelte 本身的设计方向。
Lemonad是一个面向JavaScript的函数式编程库,提供了一系列实用的工具函数,帮助开发者以函数式风格编写更简洁、可维护的代码。该库包含如映射、过滤、归约等常见函数式编程操作,并支持链式调用和惰性求值等特性。
幻想之地(Fantasy Land)是一个 JavaScript 规范,旨在为常见代数结构(如函子、单子、半群等)定义统一的接口与互操作性协议。通过遵循这些代数定律,不同的库和数据类型可以无缝协作,形成可组合、可预测的函数式编程生态。该规范已成为 JavaScript 函数式编程社区的重要参考基础。
Node.js 项目正在对其发布计划进行重要调整。随着版本节奏的变化,团队旨在更高效地交付新特性与安全更新,同时保持稳定性。此举将影响开发者如何规划升级和依赖管理。
一个令人惊叹的技术演示,将经典游戏《雷神之锤》压缩到仅13KB的JavaScript代码中。这个极简但功能完整的3D射击游戏重现了标志性的游戏玩法、敌人和关卡设计,展示了JavaScript游戏开发中极致的代码优化艺术。
Hypersonic.js 是一个高性能的 JavaScript 库,专注于提供极致的运行时效率和低延迟。该项目旨在优化现代 Web 应用中的关键性能瓶颈,为开发者提供更快的执行速度和更流畅的用户体验。
Dan Abramov,React 核心团队成员及知名开发者,现已正式加入 Next.js 团队。他将与 Vercel 团队合作,继续推动 React 生态系统与 Next.js 框架的发展。
浏览器中的传送门
0.0这是一个在浏览器中运行的《传送门》游戏复刻版,无需安装即可直接游玩。它重现了经典的第一人称解谜玩法,包括利用传送枪在关卡中穿梭。项目通过 Web 技术实现了原作的核心机制,让玩家能便捷地体验这一经典作品。
本文介绍了如何保护 Supabase 项目免受 NPM 供应链攻击,包括使用依赖锁定文件、启用 npm audit、实施代码审查流程以及利用 Supabase 的安全功能来检测和防范恶意包。文章还提供了最佳实践建议,帮助开发者降低供应链安全风险。
提升表达式
1.5本文探讨了编程语言中"提升表达式"的概念,分析其在编译器设计、作用域管理和求值顺序中的实现方式与影响。作者通过技术例证阐述了提升表达式如何改变传统表达式求值模型,为语言设计提供新的思路。
Deno 2.9
3.0Deno 2.9 版本发布,带来了性能改进、新特性和错误修复,进一步巩固了其作为现代 JavaScript/TypeScript 运行时和全栈开发工具的地位。
本文介绍了一种无需构建工具即可可视化React项目中模块导入关系的方法,帮助开发者快速定位深层导入失败的根本原因。通过解析导入路径并生成依赖图,开发者可以在没有完整构建管道的情况下,高效追踪并修复复杂的导入链问题。