前端头条: JS史上最难的消消乐游戏?(2023 年第 40 周技术周报)

大家好,这里是大家的林语冰,您现在收看的是 2023 年第 40 周前端生态的技术周报。

每周热搜

2023 年度 HTML 现状调查[2]

2023 年度的 HTML 现状调查正在火热进行中,持续三周,见者有份,欢迎诸位前端爱好者踊跃参与开源调查,有一分爱发一分电。10 月 1 日之前提交的调查问卷将直接影响 Interop 2024 相关提案,说不定前端发展的世界线会因你而变。


JS 新提案最新进展[3]

TC39(Technical Committee 39,第 39 号技术专家委员会)是一个由 JS(JavaScript)开发者、实现者、学者等组成的团体,负责 JS 的标准化。

近日,TC39 又双叒叕开会了,本次圆桌会议翻牌了若干 JS 新提案,包括但不限于 resizable ArrayBuffers 等,并且并腰斩了若干提案,包括但不限于 Symbol.thenable 等。


了不起的 Temporal API[4]

后 ES6 时代的 JS 新提案要经历最初的 stage 0,一直坚挺到最终的 stage 4 阶段才能正式出道,目前 Temporal API 已经坚持到 stage 3。

Temporal API 原生支持处理日期和时间,开箱即用,可以替代 MomentJS(已停止维护)等第三方库。这位大佬科学地解释了 Temporal API 为何牛逼。


Angular 文艺复兴[5]

2023 年 StackOverflow 调查的数据显示,去年 Angular 用户量狂跌 24%,Angular 框架的市场占有率约为 18%,而 React 仍然以近 41% 的市场占有率无情霸榜。

这位大佬如是说,Angular 正在文艺复兴,重铸谷歌霸权,吾辈义不容辞。Angular 市场占有率下降正是改革开放的必由之路。


加速 JS 生态系统:Polyfills(填充补丁)开始暴走[6]

现代化前端开发的"渐进增强"和"优雅降级"依赖于 Polyfills。

举个栗子,Vue2 进化到 Vue3 之后,Vue3 的 API 依赖 Promise,如果低版浏览器不支持 Promise,那么在构建时就需要"曲线救国",移植一个 Promise Polyfill 打补丁,这样低版浏览器就能和 Vue3 无缝衔接。

不幸的是,经历了"回调套娃"和"npm 黑洞"等天劫之后,如今我们迎来了"Polyfill 地狱"。这位大佬测评了若干基建库,不测不知道,一测猫傻掉,运行时 Polyfill 维度没有按需"tree shaking 瘦身",本地依赖过度肥胖。

举个栗子,eslint-plugin-react 模块原本本地打补丁有且仅有 15 个依赖,现在安装却祂喵地要 97 个依赖。


万物皆可 GPT[7]

chatgpt.js 是一个强大的 JS 库,允许客户端通过 ChatGPT DOM 和 ChatGPT 进行极简交互,包括但不限于 Tampermonkey(油猴脚本)等 Chrome 扩展程序的方式。

官方博客

Signal 崛起[8]

Preact 是一个多快好省的 React 备胎,拥有同款现代化 API。

Preact 团队开源了关于 Signals 优化如何响应式系统的奇技淫巧,以及关于响应式编程的一家之言。


npm 包支持 npm provenance(npm 来源)[9]

Github 开源了具备 npm provenance 发布的模块可以验证该模块的源码存储库和说明,这能且仅能用于开源模块,也可以和 GitHub Actions、GitLab CI/CD 等梦幻联动。

Bilibili Warning

由于这位技术很菜的 UP 主目前尚未正式发布过哪怕一个 npm 包,所以虽然大致了解这个功能,但没有完全了解。家人们谁懂啊?欢迎家里有包的粉丝在留言区文明科普。


跨 JS 运行时的 Socket API 草案规范[10]

Vercel 和 Cloudflare 团队的大佬发表了关于跨 JS 运行时 Socket API 的 WinterCG 规范,并实现了兼容 Node.js 的 connect() API。

Node.js 原生支持 node:netnode:tls API,虽然但是,这些过气 API 是在 10 多年前设计的,自带"回调套娃",而全新的 API 则基于时髦的 Promise 风格。官方博客开源了这一切背后的设计动机和重大意义。


HTTP/3 为什么正在蚕食世界?[11]

去年,负责定义互联网技术的 IETF(因特网工程任务组)标准化了新版 HTTP/3 。之后,HTTP/3 和 QUIC 协议在公网迅速普及。


React 身份认证功能,有手就行[12]

Userfront 是一个安全的、功能齐全的认证和访问控制平台。

官方指南手把手教你在 React 筑基的 App 中进行身份验证的千层套路。

版本公告

pnpm@8.8[13]

pnpm 是一个多快好省的软件包管理器,直接对 npm 和 yarn 降维打击,UP 主用过都说好。

pnpm@8.8 增量更新了 run 命令的 --reporter-hide-prefix 选项。


Shoelace@2.9[14]

Shoelace 是一个基于 Web Components 的面向未来的组件库,提供一流的 React 支持,兼容跨框架移植。

Shoelace@2.9 为 <sl-dialog> 增量更新了 model 属性,以支持第三方模态框。


Tesseract.js@5.0[15]

所谓 OCR,全称 Optical Character Recognition,即光学字符识别技术。Tesseract.js 是一个基于 Tesseract OCR 引擎实现的超好用的纯种 JS 库。

Tesseract.js 可以从图像中识别单词,你画我猜,看图识文,目前能且仅能支持 100 多种语言,包括但不限于 Hello bilibili/一键三连/阿里嘎多/撒浪嘿等。

Tesseract.js@5.0 优化了文件体积和内存占用,还有 createWorker() 参数改变的破坏性更新。

高玩攻略

你不知道的 TS 配置[16]

这位大佬是一个 TS 爱好者,TS 熟练度 4 年起步,总体感觉十分巴适。

大佬科普了关于 tsconfig.json 中魔鬼在细节的最佳实践。


Svelte 长达 3 年的用户体验[17]

这位大佬是一个 Svelte 爱好者,Svelte 熟练度 3 年起步,它使用 Svelte 构建了 10_000+ 人气的实时协作网站。

大佬科普了关于 Svelte 5 的正确打开方式,以及关于 Svelte runes 的一家之言。


使用状态机代替 RxJS[18]

Rx(Reactive Extensions)是一个超越了 JS 的编程模型,除了 RxJS,还有 RxJava、RxPY、RxGo 等 Rx 实现。总而言之,万物皆可 Rx。

Rx 是处理事件序列的神器,浏览器就是基于事件驱动模型。而状态机是一个可以描述整个世界的数学模型(元宇宙既视感)。

举个栗子,当你给我点赞时,彼芯按钮就会变色,由一个状态转移到另一个状态。

这位大佬科普了如何使用状态机代替 RxJS,总之就是十分烧脑。


RSC 太快了[19]

如果你还不了 RSC(React Server Components),RSC 允许你在各个组件之间拆分服务端渲染和客户端渲染。

这位大佬亲自测评后发现,RSC 优化后打包体积优化了 62%,网站上谷歌的 Speed Index 提高了 63%。大佬预言 RSC 优化后会性能爆表,虽然但是,大佬实测后还是喵瞪狗呆。


linear() 函数优雅实现 CSS 缓速特效[20]

CSS 全新的 linear() 函数蓄势待发,它可以赋能更自然的动画和过渡。

这位大佬科普了自定义缓速曲线的能力,从而产生更自然的 UI 运动。


data-* 属性的奇技淫巧[21]

data-* 属性是一种在 HTML 中添加数据的方法,你可以使用 JS 读写这些数据。

这位大佬枚举了 data-* 属性的若干应用场景。事实上,UP 主曾使用 data-* 属性手写模拟真实 DOM 场景下 Vue.js 的 v-show 指令。(这是一道企鹅的经典笔试题。)


响应式缩放的 CSS 工具[22]

这位大佬科普了利用包括但不限于 calc()/clamp()/vars 等 CSS 原生特性,构建可组合的响应式缩放工具,无缝适应视口缩放。

前端百宝袋

Verticalize[23]

Verticalize 是一个垂直化 JS 代码的类管道函数,可以让你的代码"立"起来调用。


Mimic.css 动画库[24]

Mimic.css 是一个 CSS 动画库。


React Chrono[25]

React Chrono 是基于 React 实现的时间轴组件。


Sonner[26]

Sonner 是基于 React 实现的 Toast 通知组件。


Dependency Cruiser[27]

Dependency Cruiser 是一个验证和可视化依赖关系的工具人。


Repo Trends[28]

Repo Trends 是一个 Github issue 趋势可视化分析网站。

赞助商广告位(谢谢老板)

基于 Electron 构建跨平台桌面 App

Electron 是一个使用 JS、HTML 和 CSS 构建桌面 App 的框架,它提供技术支持的产品包括但不限于 VSCode、GitHub 桌面 App 等。

欢迎和 Steve Kinney 联手一起使用 React.js 和 Electron 构建原生的跨平台桌面 App,您将学会关键的 Electron 概念,包括但不限于主进程和渲染器进程、进程间通信和安全性等。

前端大师(Frontend Masters)出品了上述人类高质量课程,付费自学,自律速成,逃离快餐式、碎片化地盲目自学,避免沉没时间成本。

扩展阅读

谷歌 Closure 编译器史话[29]

这位大佬是《Effective TypeScript(高性能的 TS)》的作者,大佬科普了谷歌 Closure 编译器的传奇历史,以及被 TS 降维打击的原因。


趣学 % 取余运算符[30]

这位大佬以可视化方式科普了 % 取余运算符的基本法,晓之以码,动之以图,新手友好。这个教程真的超可爱欸!

正片开始

TypeScript 的诞生:TS 最新纪录片[31]

TS 官方拍摄了最新的前端纪录片,采访了 TS 团队的核心成员和社区的 TS 爱好者,考古了 TS 作为微软第一个开源项目的前世今生。

UP 主已手动搬运该纪录片,欢迎前端爱好者一键三连。


JS Cruch:可能是有史以来最难的 JS 游戏?[32]

JS Crush 是一款 JS 连连看益智拼图游戏,虽然但是,方块匹配规则基于 == 运算符原理,运算结果相等才会触发消消乐,这款休闲游戏可以测评 JS 爱好者对 == 运算符的熟练度。UP 主强烈建议以后面试改成类似的体感游戏,这个游戏真的超好玩欸!

关于 == 运算符原理,可以复习 UP 主之前 JS 极限编程系列的手写 == 运算符原理[33],温故而知心。

以上就是 2023 年第 40 周的前端周报(本期同款视频请临幸 B 站[1]),学废了的小伙伴可以点赞给语冰打 call,我们礼拜天佛系拖更,欢迎关注最新动态和订阅前沿资讯。谢谢大家的彼芯,掰掰~

前端任意门

[1]本期同款视频请临幸 B 站: www.bilibili.com/video/BV1t8...

[2]2023 年度 HTML 现状调查: survey.devographics.com/en-US/surve...

[3]JS 新提案最新进展: github.com/tc39/agenda...

[4]了不起的 Temporal API: taro.codes/posts/2023-...

[5]Angular 文艺复兴: thenewstack.io/the-angular...

[6]加速 JS 生态系统:Polyfills(填充补丁)开始暴走: marvinh.dev/blog/speedi...

[7]万物皆可 GPT: chatgpt.js.org

[8]Signal 崛起: preactjs.com/blog/signal...

[9]npm 包支持 npm provenance(npm 来源): github.blog/changelog/2...

[10]跨 JS 运行时的 Socket API 草案规范: blog.cloudflare.com/socket-api-...

[11]HTTP/3 为什么正在蚕食世界?: blog.apnic.net/2023/09/25/...

[12]React 身份认证功能,有手就行: userfront.com/tutorials/r...

[13]pnpm@8.8: github.com/pnpm/pnpm/r...

[14]Shoelace@2.9: shoelace.style/resources/c...

[15]Tesseract.js@5.0: github.com/naptha/tess...

[16]你不知道的 TS 配置: kettanaito.com/blog/one-th...

[17]Svelte 长达 3 年的用户体验: poxi.substack.com/p/my-though...

[18]使用状态机代替 RxJS: www.bennadel.com/blog/4519-r...

[19]RSC 太快了: frigade.com/blog/bundle...

[20]linear() 函数优雅实现 CSS 缓速特效: www.smashingmagazine.com/2023/09/pat...

[21]data-* 属性的奇技淫巧: gomakethings.com/what-can-yo...

[22]响应式缩放的 CSS 工具: tobiasahlin.com/blog/respon...

[23]Verticalize: github.com/laurentpayo...

[24]Mimic.css 动画库: erictreacy.github.io/mimic.css

[25]React Chrono: 5f985eb478dcb00022cfd60e-hqwgomhkqw.chromatic.com/?path=/stor...

[26]Sonner: sonner.emilkowal.ski

[27]Dependency Cruiser: github.com/sverweij/de...

[28]Repo Trends: www.repotrends.com

[29]谷歌 Closure 编译器史话: effectivetypescript.com/2023/09/27/...

[30]趣学 % 取余运算符: www.joshwcomeau.com/javascript/...

[31]TypeScript 的诞生:TS 最新纪录片: www.bilibili.com/video/BV1rV...

[32]JS Cruch:可能是有史以来最难的 JS 游戏?: js-crush.vercel.app

[33]手写 == 运算符原理: www.bilibili.com/video/BV1Zu...

相关推荐
小曲曲41 分钟前
接口上传视频和oss直传视频到阿里云组件
javascript·阿里云·音视频
学不会•2 小时前
css数据不固定情况下,循环加不同背景颜色
前端·javascript·html
EasyNTS3 小时前
H.264/H.265播放器EasyPlayer.js视频流媒体播放器关于websocket1006的异常断连
javascript·h.265·h.264
活宝小娜4 小时前
vue不刷新浏览器更新页面的方法
前端·javascript·vue.js
程序视点4 小时前
【Vue3新工具】Pinia.js:提升开发效率,更轻量、更高效的状态管理方案!
前端·javascript·vue.js·typescript·vue·ecmascript
coldriversnow4 小时前
在Vue中,vue document.onkeydown 无效
前端·javascript·vue.js
我开心就好o4 小时前
uniapp点左上角返回键, 重复来回跳转的问题 解决方案
前端·javascript·uni-app
开心工作室_kaic5 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
刚刚好ā5 小时前
js作用域超全介绍--全局作用域、局部作用、块级作用域
前端·javascript·vue.js·vue
沉默璇年7 小时前
react中useMemo的使用场景
前端·react.js·前端框架