编程界的丰田卡罗拉
PHP和JavaScript代表了同一枚硬币的两面:网络编程,包括服务器端和客户端。万维网(World Wide Web)的兴起使它们成为重要角色,尽管它们(坦白说)最初的设计缺陷相当明显,演进过程缓慢且依赖委员会决策,以及各自生态系统中层出不穷的安全漏洞。
Google V8:我们如何让 JSON.stringify 的速度提升超过两倍
通过从头重新设计 JSON.stringify,从其高级逻辑到核心内存和字符处理操作,我们在 JetStream2 json-stringify-inspector 基准测试中实现了超过 2 倍的性能提升
🚦 JavaScript Signals 标准提案🚦
Signals 的目标是提供管理此类应用程序状态的基础设施,以便开发人员可以专注于业务逻辑,而不是这些重复的细节。
Javascript 中的 using、Disposable 和显式资源管理
Javascript 的新“显式资源管理”提案添加了 using 语句,该语句可以在您使用完资源后自动关闭资源。但作为同一提案的一部分,还添加了许多其他 API,使 using 更加有用。
JavaScript™ 商标更新
6月18日,商标审判与上诉委员会(TTAB)驳回了我们针对甲骨文的欺诈指控。我们对这一决定表示反对。Node.js 从来都不是甲骨文的产品或品牌。
关于 JavaScript “工作证明(proof of work) “防抓取系统的思考
人们越来越多地使用基于 JavaScript 的“工作证明”系统来应对激进的大语言模型 (LLM) 和其他网络抓取器的问题,在这种系统中,您的网络服务器要求访问客户端运行一些 JavaScript 来解决挑战
这是 JavaScript 吗?
当有人说”这只是 JavaScript”时,更明确的说法应该是”这只是适用于…的 JavaScript”,例如:这是适用于浏览器的 JavaScript; 它只是用于 Node 的 JavaScript;它只是用于 Next.js 的 JavaScript
为什么 2025/05/28 和 2025-05-28 在 JavaScript 中是不同的日子?
,JavaScript Temporal 即将推出:一套新的日期和时间 API,旨在取代 Date 对象。我们最初的整个日期解析问题源于时区歧义,但在很多情况下,我们希望将纯日期字符串完全视为纯日期。
JavaScript 的新超能力:显式资源管理
显式资源管理提案引入了一种确定性方法,用于显式管理文件句柄、网络连接等资源的生命周期。该提案为语言增加了以下内容:using 和 await using 声明,当资源退出作用域时会自动调用处置方法;[Symbol.dispose]() 和 [Symbol.asyncDispose]() 符号,用于清理操作。asyncDispose]() 符号;
为 V8 提个醒: 通过明确的编译提示加快 JavaScript 启动速度
从长远来看,我们希望能够选择单个函数进行急切编译。这样,网络开发人员就能准确控制他们想要编译的函数,并挤出最后一点编译性能来优化他们的网页。敬请期待!
您的应用是否已安装?getInstalledRelatedApps() 会告诉您!
getInstalledRelatedApps()可让您的网页 检查您的移动应用还是桌面应用,在某些情况下, Web 应用 (PWA) 已安装在用户的设备上,您可以使用 自定义用户体验
使用 devicePixelContentBox 实现像素完美的渲染
从 Chrome 84 开始,ResizeObserver 支持一种名为 devicePixelContentBox 的新框测量,以测量元素的尺寸(以物理像素为单位)。这样可以渲染像素完美的图形,尤其是在高密度屏幕环境中。
WEB 异步剪贴板 API
通过 异步剪贴板 API 并提供了明确的权限模型, 屏蔽该网页Async Clipboard API 仅限于处理文本和图片 但支持情况各不相同。请务必仔细研究 了解以下各部分的兼容性概览。
创建离线备用页面
即使没有网络连接,您仍然可以打开 Google 助理应用、输入 Slack 或启动 Zoom。您可能无法获得任何特别有意义的东西,甚至无法实现您想要实现的目标,但至少可以实现目标,并且应用处于控制之中。
停用鼠标加速以提供更好的 FPS 游戏体验
对于某些第一方视角游戏(通常是第一人称射击游戏 [FPS]),原始鼠标输入数据用于在不进行加速调整的情况下控制相机旋转。相同的物理运动(慢或快)会导致相同的旋转。对专业游戏玩家而言,这样可以获得更出色的游戏体验和更高的准确度。
与 Service Worker 的双向通信
在本指南中,我们将探索不同的 API、Workbox 库以及一些高级用例,探索在 Window 和 Service Worker 上下文之间实现双向通信的不同方式。
使用 Service Worker 向页面广播更新
在本指南中,我们将介绍如何使用标准浏览器 API 和 Workbox 库,了解在页面和 Service Worker 之间实现此类通信的不同方法。
现代 JavaScript 技术的发布、打包和安装
超过 90% 的浏览器能够运行现代 JavaScript,但盛行的旧版 JavaScript 仍然是当今 Web 性能问题的一个主要原因。
使用 DataTransfer API 打破拖放和复制粘贴障碍
拖放和复制粘贴互动通常用于页面中的互动,用于将简单文本从 A 传输到 B。但常常被忽视的一点是,能否进行同样的互动,而不仅仅局限于浏览器窗口。DataTransfer API 让用户能够在浏览器窗口之外共享数据。
使用 WebOTP API 在跨源 iframe 中填充动态密码表单
短信动态密码(动态密码)通常用于验证电话号码,例如用作身份验证的第二个验证步骤,或用于在网络上验证付款。但是,如果在浏览器和短信应用之间切换,为了复制粘贴或手动输入动态密码,很容易出错,还会给用户体验带来不便。
JavaScript 事件深入探究
JavaScript 事件处理通常很简单。在处理简单(相对扁平的)HTML 结构时尤其如此。不过,当事件通过元素层次结构传输(或传播)时,情况会更复杂一些。这通常是开发者联系 stopPropagation() 和/或 preventDefault() 来解决所遇到的问题时
使用 CSS 模块脚本导入样式表
借助新的 CSS 模块脚本功能,您可以使用 import 语句加载 CSS 样式表,就像加载 JavaScript 模块一样。然后,样式表可以像可构造的样式表一样应用于文档或shadow roots
JavaScript 全局和局部变量范围
本文介绍了不同类型的范围。JavaScript 作用域是 Web 开发中更高级的概念之一,因此您应该已通读此内容并花时间了解了这个主题。
使用 Fetch API 时实现错误处理
本文介绍了使用 Fetch API 时的一些错误处理方法。通过 Fetch API,您可以向远程网络资源发出请求。当您进行远程网络调用时,您的网页可能会受到各种潜在网络错误的影响。
新 JavaScript Set 方法
本文适合初学 JavaScript 中的 Set 并希望了解如何使用这些新 JavaScript 方法的读者阅读。我将通过基本示例强调使用这些方法的一些优势,以说明为什么您可能会选择这些方法而不是构建自己的实现。
使用 requestVideoFrameCallback() 对视频执行高效的每视频帧操作
HTMLVideoElement.requestVideoFrameCallback() 方法允许网页创作者注册一个回调,该回调在向合成器发送新视频帧时在渲染步骤中运行。这样一来,开发者就可以对视频执行高效的每视频帧操作,例如视频处理和在画布上绘制、视频分析或与外部音频源同步。
什么是 Source maps 源代码映射?
Source maps 源代码映射是现代 Web 开发中的重要工具,可以大幅简化调试工作。本页面介绍了有关Source maps 源代码映射的基础知识、其生成方式,以及源代码映射如何改善调试体验。
使用存储分区时的最大 IndexedDB 性能
无论是从同一网站还是跨网站,并发使用 IndexedDB 的速度都更快。这篇博文提供了所有详细信息,并说明了您需要执行哪些操作才能充分利用这一变更(Chrome 126 及以上版本均提供)。
IndexedDB 用法介绍
IndexedDB 是一个大规模的 NoSQL 存储系统,几乎可以存储用户浏览器中的任何内容。除了常见的搜索、获取和放置操作之外,IndexedDB 还支持事务,非常适合存储大量结构化数据。
使用限制属性安全地进行弹出式交互
同时在弹出式窗口和主页上设置 COOP: restrict-properties 不会导致限制。如果仅在弹出式窗口或主页面上设置此政策,系统将禁止通过 opener 访问除 postMessage 和 closed 以外的属性,即使这两个项目同源也是如此。
浏览器中的画中画模式
随着近期(甚至之前)推出的 Document Picture-in-Picture API 推出,Web 开发者越来越希望能够在用户从当前标签页切换焦点时自动打开画中画窗口。这对于视频会议 Web 应用尤为有用
使用 Puppeteer 测试网络蓝牙
这篇博文详细介绍了如何使用 Puppeteer 运行和测试支持蓝牙的 Web 应用。其中的关键部分是 Puppeteer 能够操作 Chrome 的蓝牙设备选择器。
让开发人员更高效的 JavaScript 字符串方法
它通过内置的 String 对象引入了多种字符串方法,使开发人员能够高效地处理字符串数据。这些高效的字符串方法促使开发人员使用 JavaScript 解决文本处理问题,而无需使用外部库或从头开始编写冗长的代码。
解码为什么 JS 中的 0.6 + 0.3 = 0.89999999999999 以及如何解决?
了解 IEEE 754 浮点数,逐步探索 0.1+0.2 如何等于 0.30000000000000004
用 JavaScript 实现的 17 个改变世界的方程式
受伊恩-斯图尔特(Ian Stewart)所著《改变世界的 17 个方程式》(17 Equations That Changed The World))一书的启发,本文将探讨如何用 JavaScript 编写这些重要的数学方程式。





