1这并不完全正确:有一些细微的破坏性更改不会影响网络上的代码。这些在 ES6 规范的 D.1 节 和 E.1 节 中有详细说明。↩
2来源:Allen Wirfs-Brock 的推文。https://twitter.com/awbjs/status/574649464687734785↩
1 [Speaking JS] parseFloat()
在 (“Speaking JavaScript”) 中。↩
2 [Speaking JS] parseInt()
在 (“Speaking JavaScript”) 中。↩
3 [Speaking JS] 舍入误差的详细信息在 (“Speaking JavaScript”) 中有解释。↩
4在内部,JavaScript 有 两个零。Math.sign(-0)
产生结果 -0
,而 Math.sign(+0)
产生结果 +0
。↩
1例外情况是函数表达式和对象字面量,您必须将它们放在括号中,因为它们看起来像函数声明和代码块。↩
3 [规范] 规范方法 GetExportedNames()
收集模块的导出。在步骤 (7.d.i) 中,检查会阻止其他模块的默认导出被重新导出。↩
1 [Speaking JS] “陷阱:将对象用作映射”↩
2基于 David Herman 的幻灯片“关闭迭代器”。↩
3 throw()
也是一个可选方法,但在实践中从未用于迭代器,因此在 关于生成器的章节 中有解释)↩
4 “组合子”(在 HaskellWiki 中)描述了什么是组合子。↩
5或者更确切地说,该函数会一直计数,直到数字 start
溢出并变为 Infinity
,此时它不再改变。↩