#712 — November 7, 2024
Together with
JavaScript Weekly
JavaScript’s ??=
Operator: Default Values Made Simple — The ??=
nullish coalescing assignment operator snuck into JavaScript a few years ago via ECMAScript 2021 and has been broadly supported almost everywhere for ages. Trevor shows off how it can tighten up your assignments here.
Trevor I. Lasn
💡 He also took a similar look at the pipeline operator |>
, but this feature is still only in draft as a proposal.
🇺🇸 JSConf is Back; Here’s the Details — Two months ago, the OpenJS Foundation announced that the popular JSConf brand was joining the foundation and a new North American JSConf event would happen in due course. Now you can mark your calendars for October 14-16, 2025 for an event taking place in the Chesapeake Bay area of Maryland, USA.
OpenJS Foundation
Handsontable: A Powerful Data Grid for Internal Apps — Speed up the development of your React app with a feature-rich data grid - sorting, filtering, multiple cell types, built-in formulas, CRUD operations, and an extensive API. Come visit our booth at React Summit US on Nov 19th to see it in action!
Handsontable sponsor
Announcing Rspack 1.1 — Rspack is a fast, Rust-powered alternative to Webpack but with the same API. v1.1 boasts being 10% faster than v1.0 and has an improved, though still experimental, incremental build feature. If super fast build times are your bag, this needs to be on your radar.
The Rspack Team
IN BRIEF:
🏆 The OpenJS Foundation has honored six JavaScript developers with awards in categories including Unsung Hero and Pathfinder for Education.
The working group behind the JSR package registry has met to outline plans for an open governance model and a roadmap to enhance JS package management.
⚠️ Phylum takes a look at yet another (ongoing) typosquatting campaign to try and trick JavaScript developers into installing malicious packages.
There’s fewer than two weeks left to take the State of React 2024 survey.
Storybook offers a sneak peek at their Storybook Test tool for fast UI testing.
RELEASES:
VitePress 1.5 – Evan You’s Vite and Vue-powered static site generator.
create-vue 3.12 – The recommended way to start a Vite-powered Vue project. Now with an experimental Oxlint integration.
ESLint v9.14.0 – Now supporting import attributes and regexp modifiers.
Mermaid 11.4 – The popular diagram / charting tool adds Kanban diagrams.
React Navigation 7, Electron 33.1, TinyMCE 7.5.0, Bun v1.1.34
📒 Articles & Tutorials
Wasmer Adds Node.js and Bun Support — Wasmer is a Rust-powered WebAssembly runtime and Wasmer 5.0 adds V8 and JavaScriptCore backend support, meaning you can try all sorts of things like, say, running Clang, Python, or even compiled JavaScript apps inside your own JavaScript app..
Syrus Akbary
Why Would Anyone Need Generator Functions? — A golden oldie that I enjoyed revisiting because it covers an oft misunderstood and not particularly commonly encountered JavaScript feature.
James Sinclair
Breakpoints and console.log
Is the Past, Time Travel Is the Future — Next-level testing in any editor, 15x faster with Interactive Time Travel Debugger, real-time insights & advanced coverage in a new UI.
Wallaby Team sponsor
The Most Effective Ways to Improve Core Web Vitals — Everyone wants their site to be as performant as possible, especially when Google factors performance into its rankings, but how? Google shares a variety of practical techniques to improve your INP, LCP, and CLS metrics here.
Why Code Security Matters - Even in Hardened Environments — A well diagrammed dive into a technique that allows malicious parties to turn a file write vulnerability in a Node.js app into a remote code execution exploit even when the file system is read-only.
Stefan Schiller (Sonar)
Generating Random Mazes with JavaScript — A fun, well-presented walkthrough of a basic maze generation process.
Paul Hebert
Along similarly fun lines is Chris MMO’s Generating Lever-Door Puzzles.
MongoDB Helps Devs Build Better AI Agents with LangChain & Hybrid Search — It’s easier than ever to build AI agents with LangChain, perform hybrid search and ingest large-scale documents.
MongoDB sponsor
🚗 Hacking Cars in JavaScript – Or “Running Replay Attacks in the Browser with the HackRF.” Charlie Gerard
📄 How Bun Supports V8 APIs Without Using V8 (Part 2) Ben Grant (Bun)
📄 How to Create an Organic Text Distortion Effect with Infinite Scrolling – There’s a live demo of the striking, though disorienting, effect. Jorge Toloza
📄 Vercel Makes Changes to Next.js to Simplify Self-Hosting Loraine Lawson (The New Stack)
📄 The Latest in Angular Change Detection – All You Need to Know Krzysztof Skorupka
🛠 Code & Tools
npmpackage.info: Detailed Package Info on a Single Page — Give this online tool the name of an npm package and you get a quick ‘dashboard’ style view of the project’s main statistics, covering areas like quality scores, commits, open issues, releases, bundle size, and more.
Shrinath Nayak
📊 NPM Chart is another cool new site focused on showing npm package download stats.
Prompt, Run, Edit, and Deploy Full-Stack Web Apps with bolt.new — StackBlitz recently released an in-browser AI web development agent: bolt.new! Give it a try today.
StackBlitz sponsor
Docusaurus 3.6: The Docs-Oriented Static Site Generator — Meta’s Docusaurus is a popular way to build docs sites (like these). v3.6 is focused on performance, now using tools like Rspack and SWC to make builds super fast.
Meta
Immutable.js 5.0: Immutable Collections for JavaScript — Provides numerous persistent immutable data structures including a list, stack, map, ordered map, set, ordered set, and records.
Lee Byron and Contributors
Sonner 1.7: The Toast Notification React Component — There’s a live demo to try on the homepage, or see the GitHub repo. v1.7 focuses on animation improvements, browser support, and React 19.
Emil Kowalski
Quaternion.js: A JavaScript Quaternion library — Last week we featured the author’s Fraction.js library, now we go a step deeper with a way to work with 3D rotations using quarternions.
Robert Eisele
BlockNote 0.19 – ‘Notion-style’ block-based editor. Now supporting column-based layouts and client-side export to .docx
and PDF. There’s a demo on the project’s homepage.
🔐 OpenPGP.js 6.0 – OpenPGP implementation for JavaScript now supporting the new version of the OpenPGP spec, RFC 9580.
Fastify 5.1 – The fast, low overhead Node.js web framework.
xr 6.4 – Bring VR/AR to React Three Fiber apps.
📰 Classifieds
⚙️ Create entire web apps with Reactile and let it handle your widgets and windows within a single browser tab. 1-month free trial. Try it now.
Meticulous automatically creates & maintains E2E UI tests. Zero flakes. Used by Lattice, Bilt Rewards and others.
Pythagora is an AI dev tool that builds production-ready tools (not demo apps). It writes the code and talks to you in the process.
📗 We’re also reading..
We’ve also had some tabs open that aren’t JavaScript specific but you might find interesting nonetheless:
🫣 Weird Lexical Syntax by Justine Tunney. Justine is building a syntax highlighter and set out to learn 42 programming languages in a single month to help figure out the edge cases. She recounts the surprising things she discovered about the syntax of various languages, including JavaScript.
👻 Before You Buy a Domain, Check if it’s Haunted by Bryan Braun. Buying a domain for a side project is always fun, but it’s far less fun when the domain was previously used for nefarious purposes and comes with baggage..
🤔 What Has Case Distinction But is Neither Uppercase or Lowercase? by Raymond Chen. It sounds like a riddle, but there are actually Unicode characters that have case distinction yet are neither uppercase nor lowercase themselves.
Published by Cooperpress and edited by Peter Cooper
‘JavaScript’ is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle.
#712 — 2024 年 11 月 7 日
连同
[](https:// javascriptweekly.com/link/162008/d076523b1d)
JavaScript 周刊
JavaScript 的 ??=
运算符:默认值变得简单 — ??=
无效合并赋值运算符潜入 JavaScript几年前通过 ECMAScript 2021 发布,并且多年来一直受到几乎所有地方的广泛支持。 Trevor 在此展示了它如何加强您的作业。
特雷弗·拉森
💡 他还对管道运算符 |>
进行了类似的研究,但此功能仍仅作为提案处于草稿阶段。
🇺🇸 JSConf 回来了;详细信息如下 — 两个月前,OpenJS 基金会宣布流行的 JSConf 品牌正在加入该基金会,并且新的北美 JSConf 活动将在适当的时候举行。现在,您可以在日历中标记 2025 年 10 月 14 日至 16 日在美国马里兰州切萨皮克湾地区举行的活动。
OpenJS 基金会
[](https://javascriptweekly.com/link/162008/d076523b1d )
Handsontable:适用于内部应用程序的强大数据网格 — 使用功能丰富的数据网格 - 排序、过滤、多种单元格类型、内置公式、CRUD 操作和广泛的 API。请于 11 月 19 日参观我们在美国 React Summit 上的展位,看看它的实际效果!
手工表赞助商
宣布 Rspack 1.1 — Rspack 是一个快速、Rust- Webpack 的有力替代方案,但具有相同的 API。 v1.1 号称比 v1.0 快 10%,并且具有改进的增量构建功能(尽管仍处于实验阶段)。如果您喜欢超快的构建时间,那么您需要关注这一点。
Rspack团队
简而言之:
🏆 OpenJS 基金会向六位 JavaScript 开发者授予奖项,类别包括无名英雄和教育探路者。
⚠️ Phylum 看看另一个(正在进行的)错字抢注活动 试图欺骗 JavaScript 开发人员安装恶意软件包。
距离进行 [State of React 2024 调查] 还剩不到两周的时间。](https://javascriptweekly.com/link/162020/d076523b1d)
Storybook 提供先睹为快 的 Storybook Test 工具,用于快速 UI 测试。
发布:
VitePress 1.5 – Evan You 的 Vite 和 Vue 支持的静态站点生成器。
create-vue 3.12 – 启动 Vite 支持的 Vue 项目的推荐方式。现在进行实验性 Oxlint 集成。
ESLint v9.14.0 – 现在支持导入属性和正则表达式修饰符。
Mermaid 11.4 – 流行的图表/图表工具添加看板图表。
反应导航 7、Electron 33.1、[TinyMCE 7.5.0](https ://javascriptweekly.com/link/162030/d076523b1d), Bun v1.1.34
📒 文章和教程
Wasmer 添加 Node.js 和 Bun 支持 — Wasmer 是Rust 支持的 WebAssembly 运行时和 Wasmer 5.0 添加了 V8 和 JavaScriptCore 后端支持,这意味着您可以尝试各种操作,例如运行 Clang、Python、甚至在您自己的 JavaScript 应用程序内部编译 JavaScript 应用程序。
赛鲁斯·阿克巴里
为什么有人需要生成器函数? — 我喜欢重温的黄金老歌,因为它涵盖了一个经常被误解且不是特别常见的 JavaScript 功能。
詹姆斯·辛克莱
断点和 console.log
已成为过去,时间旅行才是未来 — 在任何编辑器中进行下一级测试,速度提高 15 倍新用户界面中的交互式时间旅行调试器、实时见解和高级覆盖。
小袋鼠队赞助商
改善核心网络生命力的最有效方法 — 每个人都希望自己的网站尽可能具有性能,尤其是当 Google 将性能纳入其网站时排名,但是怎么样? Google 在此分享了多种实用技术来改善您的 INP、LCP 和 CLS 指标。
谷歌
为什么代码安全很重要 - 即使在强化环境中 — 深入探讨允许恶意方将文件写入的技术当文件系统是只读时,Node.js 应用程序中的漏洞甚至会导致远程代码执行漏洞。
斯特凡·席勒(声纳)
使用 JavaScript 生成随机迷宫 — 一个有趣且精心演示的基本迷宫生成过程的演练。
保罗·赫伯特
Chris MMO 的生成杠杆门谜题 也有类似的乐趣。
MongoDB 帮助开发者通过 LangChain 和混合搜索构建更好的 AI 代理 — 使用 LangChain 构建 AI 代理、执行混合搜索和摄取大型文档。
MongoDB 赞助商
🚗 用 JavaScript 攻击汽车 – 或者 “使用 HackRF 在浏览器中运行重放攻击。” Charlie Gerard
📄 Bun 如何在不使用 V8 的情况下支持 V8 API(第 2 部分) Ben Grant (Bun)
📄 如何通过无限滚动创建有机文本扭曲效果 – 有现场演示 )的效果虽然令人迷惑,但却引人注目。豪尔赫·托洛萨
📄 Vercel 对 Next.js 进行更改以简化自托管 Loraine Lawson(新堆栈)
📄 最新的角度变化检测 – 您需要知道的一切 Krzysztof Skorupka
🛠 代码和工具
npmpackage.info:单页上的详细包信息 — 为这个在线工具指定一个 npm 包的名称,您就可以快速获得“项目主要统计数据的仪表板风格视图,涵盖质量得分、提交、未决问题、版本、捆绑包大小等领域。
什里纳特·纳亚克
📊 NPM Chart 是另一个很酷的新网站,专注于显示 npm 包下载统计信息。
使用 Bolt.new 提示、运行、编辑和部署全栈 Web 应用程序 — StackBlitz 最近发布了浏览器内 AI Web 开发代理:bolt.new!今天就尝试一下吧。
StackBlitz 赞助商
Docusaurus 3.6:面向文档的静态站点生成器 — Meta 的 [Docusaurus](https://javascriptweekly.com/link/162052/ d076523b1d)是构建文档网站的一种流行方式(像这些)。 v3.6 专注于性能,现在使用 Rspack 和 SWC 等工具来使构建速度超快。
元
Immutable.js 5.0:JavaScript 的不可变集合 — 提供大量持久不可变数据结构,包括列表、堆栈、映射、有序映射、集合、有序集合和记录。
李·拜伦和贡献者
Sonner 1.7:Toast 通知 React 组件 — 主页上有一个现场演示可供尝试,或者查看 GitHub 存储库。 v1.7 重点关注动画改进、浏览器支持和 React 19。
埃米尔·科瓦尔斯基
Quaternion.js:一个 JavaScript 四元数库 — 上周我们推荐了作者的 [Fraction.js](https://javascriptweekly.com /link/162058/d076523b1d) 库,现在我们更深入地了解一种使用 quarternions. 处理 3D 旋转的方法。
罗伯特·艾塞勒
BlockNote 0.19 – “概念式”基于块的编辑器。现在支持基于列的布局以及客户端导出为“.docx”和 PDF。 项目主页上有一个演示。
🔐 OpenPGP.js 6.0 – JavaScript 的 OpenPGP 实现现在支持新版本的 OpenPGP 规范 RFC 9580。
Fastify 5.1 – 快速、低开销的 Node.js Web 框架。
xr 6.4 – 将 VR/AR 引入 React Three Fiber 应用程序。
📰 分类广告
⚙️ 使用 Reactile 创建整个 Web 应用程序,并让它在单个浏览器选项卡中处理您的小部件和窗口。 1 个月免费试用。 立即尝试。
Meticulous 自动创建和维护 E2E UI 测试。零片。由 Lattice、Bilt Rewards 等公司使用。
Pythagora 是一种 AI 开发工具,用于构建生产就绪工具(不是演示应用程序)。它会编写代码并在此过程中与您交谈。
📗 我们也在读..
我们还打开了一些非 JavaScript 特定的选项卡,但您可能会发现有趣的内容:
🫣 奇怪的词汇语法,作者:Justine Tunney。 Justine 正在构建一个语法荧光笔,并计划在一个月内学习 42 种编程语言,以帮助理解排除边缘情况。她讲述了她在各种语言(包括 JavaScript)的语法中发现的令人惊讶的事情。
👻 在购买域名之前,检查它是否闹鬼 作者:Bryan Braun。 为业余项目购买域名总是很有趣,但距离很远当域名以前被用于邪恶目的并带来麻烦时,就不那么有趣了。
🤔 什么有大小写区别,但既不是大写也不是小写? by Raymond Chen. 听起来像一个谜语,但实际上有 Unicode 字符有大小写区别,但本身既不是大写也不是小写。
由 Cooperpress 出版,由 Peter Cooper 编辑
“JavaScript”是 Oracle Corporation 在美国的商标
我们未获得 Oracle 的认可或隶属于 Oracle。
发布者