dev.to | 📄 原文链接 | 2026-11-02 收录

空对象加空数组等于零:JavaScript 没坏,是解析器在耍花招

来源:dev.to — 2026-10-29

📋 概述

{} + [] 得到 0,这既不是 bug 也不是玩笑。关键在于语句开头的那对花括号根本没有被当成对象字面量:解析器把它读成一段空代码块,什么也不做,剩下的一元加号 +[] 才真正开始运算。于是一路走类型转换:空数组先被转成空字符串,空字符串再被转成数字 0。作者借此说明 JS 的「怪」为什么会长期存在——这门十天写出来的语言必须兼容上百万个还活着的老网站,任何语法调整都得向后兼容,所以怪癖会陪我们到最后。

🔑 核心要点

💡 金句

JavaScript's weirdness is probably here to stay forever!
译:JavaScript 的古怪,大概会永远留在这里。
← 返回 dev.to 首页