Simon Logo
WritingMonthlyProjects
Simon Logo

Thanks for reading!

CC BY-NC-SA 4.0© 2019-2026 Simon Wong.

Contact

GitHubGithubXTwitterZhihu知乎WeChat微信公众号RSSRSS

Legal

隐私策略服务条款
CC BY-NC-SA 4.0© 2019-2026 Simon Wong.

On this page

On this page

ReactElectronNodeCSS

#24 前端月刊

Jul 31, 2025

ECMAScript 2025 的新特性

包含了:

  • 正则表达式支持了 | 来分割多个替代项,可以理解为 或
  • 正则表达式可以给模式子集添加标识(i、m 等等), /^(?i:bearer) abc$/ 就表示
  • RegExp.escape() 来处理正则表达式字符串的转义
  • bearer 忽略大小写
  • 新增 Set 方法,包括 intersection、union、difference、symmetricDifference、isSubsetOf、isSupersetOf 和 isDisjointFrom
  • 支持导入 JSON,with { type: "json" }
  • 迭代器支持 map() 、filter() 等等类似数组操作的方法
  • Promose.try() 是一个同步、异步包装器
  • Float16Array 支持。

实时在线的 1000 * 1000 个国际象棋棋盘游戏是如何实现的

作者开发了一个大型多人在线实时的国际象棋游戏,界面上同时存在 1000*1000 个棋盘,非常的震撼,你可以想象,上千名玩家同时在这个巨大的棋盘中实时游玩,而游戏仅仅运行在世界某个角落的一块 CPU 中。

这里面带来了非常多的技术问题:带宽、单进程架构、高性能、低延迟,还有后端状态管理、数据分发、乐观回滚等等一系列技术问题。

该项目的架构核心是一种在内存、计算和带宽三者之间的精妙权衡。它选择多用内存(512MB 的密集数组)来换取更快的计算(缓存友好的连续读取),并通过更复杂的服务器端逻辑(Zone 管理、数据分发)和客户端逻辑(Rollback Netcode)来最大程度地节省带宽和优化用户体验。这体现了"针对特定访问模式进行深度优化"的设计思想。

这些技术思想可以运用在:多人在线协作工具、大型沙盒游戏等等场景中。

项目源码:https://github.com/nolenroyalty/one-million-chessboards 在线游玩:https://onemillionchessboards.com/

JavaScript 字符串 slice() 方法的弊端

String.prototype.slice() 方法在处理包含复杂 Unicode 字符(如 Emoji)的字符串时存在的严重隐患。 你可以尝试一下 '🇨🇳中国'.slice(0, 2) 得到的结果,并不是 🇨🇳中 ,而是 🇨 因为 🇨🇳 由 🇨 和 🇳 组成,而 🇨 和 🇳 分别由两个代码单元 (Code Unit) 组成。

这里有四个关键概念:

  1. 码点 (Code Point):Unicode 为每个字符分配的唯一编号,如 'a' 是 U+0061,'🙂' 是 U+1F642。
  2. 代码单元 (Code Unit):JavaScript 字符串使用 UTF-16 编码,其基本存储单位是16位的代码单元。一些简单的字符(如 'a')用一个代码单元表示,而复杂的字符(如许多 Emoji)则需要两个代码单元(即"代理对")来表示。
  3. 代理对 (Surrogate Pair):UTF-16 中用于表示超出基本多文种平面(BMP)的码点的一种机制。它使用两个16位的代码单元来共同表示一个码点。许多 Emoji 和不常用字符都通过代理对实现。
  4. 字形簇 (Grapheme Cluster):用户眼中看到的一个完整字符,可能由多个码点组合而成(如 e + ´ = é)。

轻松学习 SVG

这大概是我见过最友好的学习 SVG 的文章了。大家肯定用的非常多,但是 SVG 上面的属性、数字代表什么含义却很难摸清。 这篇文章你能找到答案,而且还有动画的内容讲解。

你对 Date 类了解多少

Date 类的测试题,我一大半都没有答对,简直丧心病狂。

es-toolkit: lodash 的直接替代品

es-toolkit 其实已经出来有一段时间了,现在他 100% 兼容了 lodash 的 api,可以直接取代 lodash。 比 lodash 块 2-3倍,体积缩小 97%。

Previous

前端月刊

Next

前端月刊

You Might Also Like

  • 前端月刊Jul 31, 2025
  • 前端月刊Nov 30, 2025
  • 前端月刊Jun 30, 2025