Show HN: JavaScript PubSub in 163 Bytesa year agohttps://github.com/hassanshaikley/pico-pubsubPico-pubsub 是零依赖的最小发布订阅库,仅149字节。专为JS13K游戏设计,追求极致精简的体积。功能包含带事件处理的订阅与发布函数。与其他库对比:nano-pubsub(194字节)和tiny-pubsub(401字节)。提供可选定制功能,但会略微增加体积。未来计划可能包括TypeScript支持。
Porting is-odd NPM to OCaml using remelange compilera year agohttps://dev.to/denyspotapov/porting-is-odd-npm-to-ocaml-using-remelange-compiler...使用remelange将类似is-odd这样的JavaScript工具库移植到OCaml中。Remelange是一个实验性的JS/TS到OCaml编译器。选择is-odd库是因为它的简单性和流行度。步骤包括理解JavaScript源代码、使用remelange编译、生成接口文件以及使用OCaml代码。该过程展示了将JavaScript库自动移植到OCaml的方法。提到了移植更复杂库(如date-fns或lodash)的潜力。这篇文章发布于4月1日,并幽默地提到了is-odd在OCaml中的实用性。
V8: From CFG to Sea of Nodes and back againa year agohttps://v8.dev/blog/leaving-the-sea-of-nodesV8的Turbofan编译器正从节点海(Sea of Nodes/SoN)架构转向名为Turboshaft的控制流图(CFG)中间表示节点海架构最初因其依赖关系表示的灵活性被采用,但在JavaScript和WebAssembly场景中暴露出明显缺陷节点海的主要问题包括:副作用与控制链管理复杂、可视化审查困难、编译效率低下转向Turboshaft的目标是简化编译器架构、提升性能,并使代码更易于维护调试与节点海方案相比,Turboshaft已展现出编译速度提升、缓存局部性优化等显著优势
Bare: Run JavaScript Everywherea year agohttps://pears.com/news/introducing-bare-actually-run-javascript-everywhere/Bare是一个极简的JavaScript运行时,专为桌面和移动设备设计,注重模块化、通用性和可扩展性。与Node.js不同,Bare强调嵌入式与跨设备支持,使其成为点对点应用的理想选择。Bare能与V8等现有运行时无缝集成,在保持JavaScript灵活性的同时提供原生性能。开发者可构建点对点应用、自包含的跨平台程序,并利用Bare的模块化架构提升效率。Bare与Holepunch的Pear运行时深度协同,实现完全去中心化的点对点系统,无需中央服务器。Bare支持多JavaScript引擎(V8/JavaScriptCore/QuickJS),可运行于从计算机到嵌入式设备的各类终端。Bare与Pear的组合提供了最小化、模块化且强大的容器模型,让应用能在任意环境运行。Bare实现了「一次编写,随处运行」的开发范式,这对Keet和Pear Runtime等应用具有重大意义。
Mithril.js: small (8.96 KB gzipped) modern client-side JavaScript frameworka year agohttps://github.com/MithrilJS/mithril.jsMithril.js 是一个现代化的客户端 JavaScript 框架,用于构建单页应用(SPA)。它体积小巧(gzip 压缩后仅 8.96 KB)、性能优异,且内置路由和 XHR 工具集。被 Vimeo、Nike 等企业及 Lichess 等开源平台采用。兼容 IE11、Firefox ESR 及主流浏览器的最新两个版本,无需垫片(polyfills)。可通过 CDN(unpkg 或 jsDelivr)引入,或通过 npm 安装。TypeScript 类型定义可通过 DefinitelyTyped(`@types/mithril`)获取。官方文档站 mithril.js.org 提供 API 文档、示例代码和简易应用开发指南。活跃的社区支持渠道包括 Zulip 和 Stack Overflow(使用 `mithril.js` 标签)。项目贡献指南(Contributing FAQ)可供有意参与开发的贡献者参考。
On JavaScript's Weirdnessa year agohttps://stack-auth.com/blog/on-javascripts-weirdnessJavaScript的`eval`函数在被重命名时表现不同,由于ECMAScript规范中的特殊规定,它只能访问全局作用域而非当前作用域。JavaScript循环在变量捕获方面表现出独特行为:循环头中定义的变量会被视为按值捕获,而外部定义的变量则按引用捕获。JavaScript中存在一个假值对象`document.all`,这是ECMAScript标准为保持与旧版IE代码兼容而特别规定的。JavaScript字符串迭代会因采用UTF-16编码单元、Unicode码位、显示字符或扩展字素簇等不同计数方式而产生差异结果。通过省略元素或使用`Array`构造函数创建的稀疏数组,可能导致数组方法出现意外行为且性能较差。JavaScript的自动分号插入机制(ASI)可能引发代码意外解析,典型示例是缺失分号会导致代码行为改变。
Show HN: Transputer emulator in JavaScript (fast enough to be useful)a year agohttps://nanochess.org/transputer_emulator.html最初用C语言编写的transputer模拟器的JavaScript移植版本JavaScript的JIT编译器使其性能接近C语言JavaScript中的位运算符默认处理为32位有符号整数,需使用>>>0技巧处理无符号值采用Uint8Array提升性能和内存效率,尤其适用于40MB硬盘等大数据量场景使用Base64编码压缩驱动器镜像的源代码体积通过Float32Array/Float64Array/Uint32Array实现浮点数模拟显示系统采用基于ECMA-94标准的jsTerm终端与定制字体预载1996年完整操作系统镜像,含多驱动器和C编译器支持目录列表、内存检查、文本编辑和程序编译等命令内置3D建模器与光线追踪器(含示例场景)多任务处理示例(含时钟显示功能)完整源代码已发布于GitHub平台
AnimeJs v4 Is Herea year agohttps://animejs.com/Anime.js 是一个快速且多功能的 JavaScript 动画库,专为网页动画设计。它提供统一的 API 实现万物皆可动,突破浏览器限制束缚。特性包含:强大的动画 API、SVG 变形与运动路径工具、滚动触发动画的观察者 API。内置交错动画工具实现惊艳特效,可拖动 API 打造交互元素,时间轴 API 实现动画序列精准同步。作用域 API 让动画能响应媒体查询,确保自适应效果。采用高效设计,支持按需引入以保持代码体积精简。完全开源免费,由赞助商支持,提供全方位的动画解决方案。
Show HN: Offline JavaScript PubSub between browser tabsa year agohttps://simon-frey.com/tabsub/TabSub是一个基于JavaScript的发布订阅工具,它利用本地存储实现跨标签页消息共享,无需服务器支持。由于浏览器安全机制将本地存储按域名隔离,该工具只能在同域名下的标签页间工作。经测试,TabSub在10个并发写入场景下仍能保持消息零丢失且顺序正确(但不提供任何担保)。该工具已在GitHub开源,采用MIT许可证。典型应用场景包括跨标签页同步音乐播放进度,以及基础的发布/订阅操作和状态获取功能。
Show HN: A new VSCode extension that shows definition functions in a stacka year agohttps://github.com/eridien/vscode-definition-stack定义栈(Definition Stack)是一款VSCode扩展,用于阅读JavaScript和TypeScript代码,尤其适用于陌生代码的阅读。它以堆栈形式展示定义和引用的源代码,便于快速查阅,函数会以独立代码块的形式呈现。通过单一命令'Definition Stack:Open'即可启动堆栈,用户点击符号即可在上方新代码块中查看其定义。用户可遍历定义与引用的树形结构,无需记忆文件位置,有效降低认知负荷。功能包含44种深浅色主题、实时主题/高亮色调整、可折叠代码块。代码块可显示定义的引用关系,界面配有导航按钮用于管理堆栈。支持26种符号类型(包括函数、变量、模块等)。当前局限包括:无键盘快捷键、源文件编辑后不会自动更新、仅支持JavaScript/TypeScript。界面美观度有待提升,存在改进空间。
Open Source Coalition Announces 'Model-Signing' to Strengthen ML Supply Chaina year agohttps://pypi.org/project/model-signing/您的浏览器禁用了JavaScript。由于浏览器扩展、网络问题或浏览器设置等原因,网站的必要部分无法加载。建议的解决方案包括检查网络连接、禁用广告拦截器或尝试使用其他浏览器。
Hiding elements that require JavaScript without JavaScripta year agohttps://0xda.de/blog/2025/04/hiding-elements-that-require-javascript-without-jav...该网站旨在无需JavaScript也能正常运行,但禁用JavaScript时某些元素可能显得笨拙。通过7行代码(或单行代码)解决方案可隐藏依赖JavaScript的元素,避免对禁用JavaScript的用户造成功能缺失。示例:分享按钮在启用JavaScript时显示SVG图标,禁用时通过`<noscript>`标签显示链接。初始方案:通过在`<head>`中用JavaScript添加`js-enabled`类来差异化样式,但感觉不够优雅。替代方案:结合`<noscript>`和`<style>`标签隐藏特定元素(如`.theme-toggle`、`.menu-trigger`)。优化方案:引入单一类名`.d-js-required`配合极简CSS隐藏所有依赖JavaScript的元素,降低维护成本。结论:此类创新方案能有效管理渐进增强策略,确保无论JavaScript是否可用都能提供流畅体验。
A new way to make graphs more accessible to blind and low-vision readersa year agohttps://news.mit.edu/2025/making-graphs-more-accessible-blind-low-vision-readers...您的浏览器已禁用JavaScript本网站需要JavaScript才能正常运行可能的原因包括:浏览器扩展程序、网络问题或浏览器设置建议解决方案:检查网络连接、禁用广告拦截器或尝试使用其他浏览器
Saturn's moon Titan could harbor life, but only a tiny amounta year agohttps://news.arizona.edu/news/saturns-moon-titan-could-harbor-life-only-tiny-amo...浏览器中禁用了JavaScript。网站的必要部分无法加载。可能的原因包括浏览器扩展、网络问题或浏览器设置。建议操作:检查网络连接、禁用广告拦截器或尝试使用其他浏览器。
Writing good comments: the why, not the how (2020)a year agohttps://www.jackfranklin.co.uk/blog/code-comments-why-not-how/代码通过 `'' + maybeKey` 将可能未定义的 `maybeKey` 转换为字符串。注释解释了问题所在,提供了示例,并概述了短期和长期的解决方案。注释应着重解释代码背后的'原因',而不仅仅是'做了什么',以便为后续开发人员提供上下文。
The West is bored to deatha year agohttps://www.newstatesman.com/ideas/2025/04/the-west-is-bored-to-death您的浏览器禁用了JavaScript。由于浏览器扩展、网络问题或浏览器设置等原因,网站的必要部分无法加载。建议的操作包括检查网络连接、禁用广告拦截器或尝试使用其他浏览器。
Engineered bacteria emit signals that can be spotted from a distancea year agohttps://news.mit.edu/2025/engineered-bacteria-emit-signals-spotted-from-distance...浏览器中JavaScript被禁用由于浏览器扩展、网络问题或浏览器设置等原因,网站的必要部分无法加载建议检查网络连接、禁用广告拦截器或尝试使用其他浏览器
The Dark Side of the Moominsa year agohttps://www.newstatesman.com/culture/books/2025/04/dark-side-of-the-moomins-tove...浏览器中JavaScript被禁用该网站需要JavaScript才能正常运行可能的原因包括浏览器扩展、网络问题或浏览器设置建议解决方案:检查网络连接、禁用广告拦截器或尝试使用其他浏览器
An LSD Analogue with Potential for Treating Schizophreniaa year agohttps://www.ucdavis.edu/news/researchers-develop-lsd-analogue-potential-treating...您的浏览器已禁用JavaScript。本网站需要JavaScript才能正常运行。可能的原因包括:浏览器扩展程序、网络问题或浏览器设置。建议解决方案:检查网络连接、禁用广告拦截器或尝试使用其他浏览器。
Some features that every JavaScript developer should know in 2025a year agohttps://waspdev.com/articles/2025-04-06/features-that-every-js-developer-must-kn...JavaScript引入迭代器助手方法,无需临时数组即可高效转换数组Array.prototype.at()方法支持负索引,更便捷地访问元素Promise.withResolvers()简化了带外部解析器的Promise创建过程String.prototype.replace()和replaceAll()现支持回调函数实现动态替换使用解构赋值可以简洁地实现变量交换推荐使用structuredClone()进行对象深拷贝而非JSON方法标签模板支持对模板字符串进行自定义处理WeakMap和WeakSet允许建立可被垃圾回收的键值关联JavaScript现已支持集合操作(差集、交集、并集等)