程序员茄子
全部
编程
代码
资讯
案例
综合
联系我们
JavaScript 相关技术文章
php
mysql
shell
go
vue
css
api接口对接
支付接口对接
验签总差在 `%21` 和 `!` 之间:空格、`~`、`!` 在三套 URL 编码规则里的分歧
编程
验签总差在 `%21` 和 `!` 之间:空格、`~`、`!` 在三套 URL 编码规则里的分歧
2026-11-12 00:04:04
同一串参数值在 PHP urlencode、rawurlencode、Go QueryEscape、PathEscape、JS encodeURIComponent 下输出不同:空格是 + 还是 %20、~ 是 %7E 还是原样、! 编不编码。附五函数输出对照、Go 源码里的 encodePathSegment 分支,以及签名验签不一致时的逐层排查顺序。
URL编码
PHP
Go
JavaScript
签名
接口对接
Intl.NumberFormat 不解析:19 位金额串、min2 分组与 -0 的三种显示
编程
Intl.NumberFormat 不解析:19 位金额串、min2 分组与 -0 的三种显示
2026-11-02 00:04:30
Intl.NumberFormat 只格式化不解析,三处容易踩的地方:JSON 金额是字符串时先 parseFloat 会把 19 位数字末位抹成 0(v3 起字符串按十进制精确解析,BigInt 分单位可加 E-6 直传);useGrouping 的 'min2' 让 1000 不分组、10000 才分组,字符串 'true'/'false' 会被静默替换成默认值;signDisplay 五个取值对负零的显示从 "-0" 到 "+0" 各不相同。另附 formatToParts 反解本地化数字的写法与 round-trip 校验。
Intl.NumberFormat
Intl
i18n
国际化
JavaScript
前端
容器里 TZ=UTC,SSR 日期少一天:Intl.DateTimeFormat 的默认值与边界
编程
容器里 TZ=UTC,SSR 日期少一天:Intl.DateTimeFormat 的默认值与边界
2026-11-01 00:03:59
Intl.DateTimeFormat 的默认 timeZone 取运行时区,不是 UTC:容器 TZ=UTC 时 SSR 与浏览器会差一天。文中给出 dateStyle 与组件选项互斥的报错原文、hourCycle h24 输出 24:00、Etc/GMT+8 符号相反、small-icu 静默退化为 en-US 等复现代码与判据,并附修复顺序。
Intl.DateTimeFormat
JavaScript
时区
前端
i18n
ASH
MF2 各实现版本不一致:ICU4J 升到 draft、ICU4C 停在 CLDR 47、JS 包 4.1 已到 48.2
案例
MF2 各实现版本不一致:ICU4J 升到 draft、ICU4C 停在 CLDR 47、JS 包 4.1 已到 48.2
2026-10-30 00:03:47
MF2 规范 Stable 不等于四个实现一致:ICU4J 在 ICU 78 升到 draft 且对齐 CLDR 48,ICU4C 仍停在 CLDR 47,ICU4X 才刚落地初始实现,JS 包 messageformat 4.1 对齐 LDML 48.2/49。给出实现版本矩阵、可跑的 JS 接入代码、语法/数据模型/运行期三层错误分型与接入检查清单。
MF2
MessageFormat
ICU
ICU4J
ICU4C
ICU4X
i18n
国际化
CLDR
JavaScript
本地化
稳定性
MySQL 里跑 JavaScript 不是让你把业务搬进数据库:Percona 的 component_js_lang 只补 SQL 缺的那几步
编程
MySQL 里跑 JavaScript 不是让你把业务搬进数据库:Percona 的 component_js_lang 只补 SQL 缺的那几步
2026-10-26 21:06:52
Percona 的 component_js_lang 让 MySQL 8.4 里能写 V8 JavaScript 函数,但引擎砍掉了网络、文件、npm 和 async,只留纯函数。这篇讲它真正补的是 SQL 表达不了的几步:未知形状递归、数组、29 位大整数、带聚合的迭代,并用四个 demo 的实测数字说明边界与授权方式。
MySQL
数据库
JavaScript
Intl.DateTimeFormat 的 dateStyle 与单组件互斥:容器里差 8 小时与 hourCycle 的 0/1 起点
案例
Intl.DateTimeFormat 的 dateStyle 与单组件互斥:容器里差 8 小时与 hourCycle 的 0/1 起点
2026-10-25 00:06:07
Intl.DateTimeFormat 有两类不会提示的失败:dateStyle/timeStyle 与 hour、year 等单组件同时写会直接抛 TypeError;timeZone 默认取运行时时区,容器里通常 UTC,服务器与浏览器输出就差 8 小时。文中给出互斥规则与 resolvedOptions 不展开的原因、IANA 与偏移两种时区写法、h11/h12/h23/h24 的起点差异与 hour12 的覆盖顺序,并附一段可跑的断言脚本。
Intl
Intl.DateTimeFormat
i18n
国际化
前端
JavaScript
时区
Intl.NumberFormat 位数与舍入:只设 minFrac 会把 maxFrac 定成 3,分组符也不一定是空格
编程
Intl.NumberFormat 位数与舍入:只设 minFrac 会把 maxFrac 定成 3,分组符也不一定是空格
2026-10-25 00:04:53
Intl.NumberFormat 的位数与舍入选项有大量会静默生效的默认值:只写 minimumFractionDigits 会把 maximumFractionDigits 定成 3,roundingIncrement 不给 maxFrac 就被压成 0,旧引擎还会直接忽略 roundingMode。文中列出默认值表、九种舍入模式对照、0.05/0.1 舍入写法、fr-FR 的 U+202F 分组符,以及一套 resolvedOptions 自检与排查顺序。</description> <||DSML|| parameter name="keywords" string="true">Intl.NumberFormat|IntlNumberFormat|roundingMode|roundingIncrement|trailingZeroDisplay|roundingPriority|i18n|前端国际化|金额格式化
Intl
Intl.NumberFormat
i18n
国际化
前端
JavaScript
ICU
Vue 3.6 加一个 vapor 关键字:10k 方块更新从 ~16ms 降到 ~0.2ms
编程
Vue 3.6 加一个 vapor 关键字:10k 方块更新从 ~16ms 降到 ~0.2ms
2026-10-14 20:01:13
Vue 3.6 的 Vapor Mode 用编译期细粒度响应式替代 Virtual DOM,加一个 vapor 关键字即可启用。本文整理 opt-in 语法、createVaporApp/vaporInteropPlugin、不支持的 API、事件委托与 slots.default() 陷阱、自定义指令新接口,以及 benchmark 实测数字与 3.6 beta 安装方式。
Vue
Vapor
Mode
前端性能
Virtual
DOM
JavaScript
Node.js 改成一年一版:26 是旧模型最后一班车,27 起所有版本都进 LTS
编程
Node.js 改成一年一版:26 是旧模型最后一班车,27 起所有版本都进 LTS
2026-10-09 21:01:43
Node.js 发布模型改为一年一版:每年 4 月出大版本、10 月转 LTS,取消奇偶区分,27 起所有版本都进 LTS。本文整理 26/27 的时间表、迁移窗口影响,以及 Node 26 里 Temporal 默认开启、writeHeader() 与 _stream_* 模块被移除等升级要改的点。
Node.js
LTS
发布周期
JavaScript
日历
Node.js 25.9.0 迁移:模块 mock 合并为 exports,AsyncLocalStorage 支持 using scopes
编程
Node.js 25.9.0 迁移:模块 mock 合并为 exports,AsyncLocalStorage 支持 using scopes
2026-10-07 21:03:40
Node.js 25.9.0 把 test runner 的模块 mock 选项 defaultExport/namedExports 合并为单个 exports,并提供 npx codemod 自动迁移;同时新增 --max-heap-size、AsyncLocalStorage using scopes、TurboSHAKE/KangarooTwelve。文末汇总升级到 25.x 需注意的移除项(Corepack、SlowBuffer、fs.F_OK 等)。
Node.js
JavaScript
测试
运行时
迁移
Math.sumPrecise 进入 Stage 4:reduce 求和的精度问题与它的解法
编程
Math.sumPrecise 进入 Stage 4:reduce 求和的精度问题与它的解法
2026-10-06 00:03:18
Math.sumPrecise 已到 TC39 Stage 4、进 ECMAScript 2027。这篇讲清它与 reduce 朴素求和的精度差异、为什么只收 iterable、空集为何返回 -0、非 Number 为何抛 TypeError,以及它依然解决不了 0.1+0.2 的原因和规范里的状态机细节。
math.sumprecise
JavaScript
浮点精度
ES2027
TC39
reduce
ECMAScript
Oz
论文
Bun 1.4 发布:从 Zig 重写为 Rust,空闲 CPU 占用降到 1/5
编程
Bun 1.4 发布:从 Zig 重写为 Rust,空闲 CPU 占用降到 1/5
2026-10-05 21:03:19
Bun 1.4 从 Node.js 测试套件新增 1517 个通过测试,空闲 CPU 占用降到 1/5、内存最多降 35%,并把运行时间从 Zig 重写为 Rust;内置新增 Bun.Image/WebView/markdown/cron/Terminal 与 bun run --parallel 等命令。
Bun
JavaScript
运行时
V8 不是 Node.js:JS 引擎、Runtime、产品三层区分与常见误判
编程
V8 不是 Node.js:JS 引擎、Runtime、产品三层区分与常见误判
2026-09-29 00:03:38
JS 引擎、Runtime、产品是三件事:V8 不等于 Node.js,JavaScriptCore 也不等于 Safari。本文用一张引擎对照表梳理 V8/JSC/SpiderMonkey/Hermes/QuickJS 各自跑在哪些 runtime 与产品上,并给选型依据。
JavaScript
Runtime
JS引擎
V8
JavaScriptCore
Hermes
运行时
Node.js 25.5.0 用一条 --build-sea 命令产出单文件可执行程序
编程
Node.js 25.5.0 用一条 --build-sea 命令产出单文件可执行程序
2026-09-22 21:02:45
Node.js 25.5.0 新增 --build-sea 参数,把 SEA 单文件可执行程序构建从复制二进制、生成 blob、postject 注入三步压成一条命令。本文给出可复现的 sea-config.json 与命令,并列出 fs.watch、node:sqlite、npm 等同期改动与 25.x 版本线背景。
Node.js
JavaScript
打包
命令行工具
TypeScript 5.9:import defer 延迟模块求值,大项目编译快约 11%
代码
TypeScript 5.9:import defer 延迟模块求值,大项目编译快约 11%
2026-09-20 21:02:41
TypeScript 5.9 带来 import defer 延迟模块求值(只能整模块命名空间导入)、稳定的 --module node20、精简的 tsc --init 默认;编译器缓存 mapper 实例化、优化文件检查,大项目约提速 11%。另有 ArrayBuffer 不再是 TypedArray 超类型的行为变更。
TypeScript
前端
JavaScript
编译优化
【tag需求】bun test 默认单进程跑测试:NODE_ENV=test、UTC 时区与未处理错误会改变退出码
编程
【tag需求】bun test 默认单进程跑测试:NODE_ENV=test、UTC 时区与未处理错误会改变退出码
2026-09-14 00:04:09
bun test 是 Bun 内置的 Jest 兼容测试运行器,跑在 Bun 运行时里。这篇整理它的默认运行时行为(单进程、NODE_ENV=test、UTC 时区、未处理错误改变退出码)、测试发现与过滤规则、超时/并发/并行 flag、钩子与 mock、bunfig.toml 的 [test] 配置,以及单进程共享全局状态等踩坑边界。
bun
test
测试
单元测试
JavaScript
TypeScript
时区
pretext 开源:不碰 DOM 的文本测量引擎,比传统布局回流快 500 倍
编程
pretext 开源:不碰 DOM 的文本测量引擎,比传统布局回流快 500 倍
2026-09-12 09:50:24
pretext 是 React 核心贡献者 chenglou 推出的纯 JS 文本测量引擎:用 Canvas 做一次性准备后纯算术运算完成排版,彻底绕开 DOM 测量与布局回流;支持中英日韩、阿拉伯 RTL、Emoji 混排等几乎所有语言场景,批量 layout 仅 0.09ms,比传统 DOM 测量快 500 倍。
pretext
文本测量
前端性能
排版引擎
JavaScript
Node.js 26.8.0(Current)发布解读:原生 zip 支持、GCM-SIV 加密与 REPL 语法高亮
编程
Node.js 26.8.0(Current)发布解读:原生 zip 支持、GCM-SIV 加密与 REPL 语法高亮
2026-09-09 11:16:01
Node.js 26.8.0(Current)发布:zlib 新增原生 ZipEntry/ZipFile API,crypto 支持 SIV/GCM-SIV 模式,REPL 语法高亮,sqlite 语句支持 Symbol.dispose,TracingChannel 稳定。服务端 zip 处理可减少第三方依赖。
Node.js
JavaScript
后端
zip
加密
Node.js 24.21.0(Krypton LTS)发布解读:STORE 私钥加载与直方图统计检验
编程
Node.js 24.21.0(Krypton LTS)发布解读:STORE 私钥加载与直方图统计检验
2026-09-09 09:35:53
Node.js 24.21.0 Krypton LTS 发布:crypto 支持通过 STORE loaders 加载私钥、根证书更新至 NSS 3.126、perf_hooks 直方图新增统计假设检验、net.BlockList 性能提升、util 新增非抛错 MIMEType.parse,OpenSSL 升至 3.5.8、Undici 7.29.1。
Node.js
JavaScript
运行时
安全更新
JavaScript 闭包:函数、词法作用域与记住的环境
编程
JavaScript 闭包:函数、词法作用域与记住的环境
2026-09-08 00:14:58
从例子讲透 JavaScript 闭包:函数保持与创建它的词法环境的连接,外层执行完变量不消失的原因,以及闭包保持状态与数据私有两个实用价值。
JavaScript
教程
阻塞主线程有时是对的:什么任务应该留在主线程执行
编程
阻塞主线程有时是对的:什么任务应该留在主线程执行
2026-09-07 09:50:46
深入剖析永不阻塞主线程这条规则的边界:结构化克隆算法的 O(n) 阻塞成本、Transferable 对象的限制,以及用总时间公式判断任务该隔离到 Worker 还是留在主线程。
JavaScript
性能
Web Worker
主线程
当逃生路线变成收费公路:JetBrains 研究程序员如何在编程语言之间迁移
编程
当逃生路线变成收费公路:JetBrains 研究程序员如何在编程语言之间迁移
2026-09-07 05:14:06
JetBrains 2025 调查揭示编程语言迁移路径:项目需求是切换主因但 Kotlin 是例外(体验驱动)、C 流失率高、Java 流向 Python/TypeScript、计划迁移与实际完成差距大。
编程语言
迁移
Kotlin
Java
JavaScript
TypeScript
JetBrains
Deno 2.9 发布:deno desktop 桌面应用开发、启动提速近 2 倍、内存占用大降
编程
Deno 2.9 发布:deno desktop 桌面应用开发、启动提速近 2 倍、内存占用大降
2026-09-07 04:09:04
Deno 2.9 发布:引入 deno desktop 桌面应用开发(webview+Deno 逻辑+单二进制分发),冷启动快 1.98 倍(34ms→17ms)、内存占用最多降 3.1 倍、HTTP 吞吐提升 1.27 倍,支持 CSS module imports 和更顺滑的 npm 生态迁移。
Deno
2.9
桌面应用
性能
JavaScript
TypeScript
运行时
用 Baseline 减少 JavaScript 依赖:审计 package.json 中浏览器已原生支持的库
编程
用 Baseline 减少 JavaScript 依赖:审计 package.json 中浏览器已原生支持的库
2026-09-06 19:16:13
Smashing Magazine介绍如何审计项目依赖,移除浏览器已原生支持的JavaScript库。典型中等规模应用中可找到60-90KB(gzipped)可替代依赖。可原生替代的类别:日期格式化(Intl.DateTimeFormat替代moment/date-fns)、数字格式化(Intl.NumberFormat替代numeral)、HTTP请求(fetch替代axios)、深拷贝(structuredClone替代lodash.cloneDeep)、数组合组(Object.groupBy替代lodash.groupBy)、模态框(dialog元素替代Modal库)、工具提示(Popover API替代tippy.js)、URL解析(URL API替代query-string)、防抖节流(自行20行代码替代lodash)、唯一ID(crypto.randomUUID替代uuid)。审计方法:按类别审计、分析打包体积、检查浏览器兼容性、渐进式迁移、建立持续审计机制。
JavaScript
Web性能
依赖审计
Baseline
前端优化
bundle
原生API
Smashing Magazine
大家都在搜索什么?
devops
易支付
一个官网+多少钱
统一接受回调
统一回调
python
sub
node
宝塔日志
mysql
shell
ElasticSearch
css
vue
api接口对接
2025
支付接口对接
go
php
php回调
上一页
1
2
3
4
5
6
7
…
18
下一页
共 18 页
到第
页
确定