2.常见问题

2.1 如何了解哪些 JavaScript 特性在哪些运行环境中受支持?

本书通常会提到某项特性是否属于 ECMAScript 5(老一些的浏览器通常支持的版本)或更新版本的一部分。对于更多详细信息(包括 ES5 之前的版本),可以在线参考这几个不错的兼容性表:

2.2 为什么 JavaScript 经常出问题而不报错?

JavaScript 经常出问题而不报错。我们来看两个例子。

第一个示例:如果运算符的操作数不是正确的类型,则会根据需要,隐式地进行转换。

> '3' * '5'
15

第二个例子:如果算术计算失败,则会得到一个错误的值,而不是抛出异常。

> 1 / 0
Infinity

经常出问题而不报错的原因是历史遗留问题:直到 ECMAScript 3,JavaScript 才有异常。从那时起,它的设计者才开始避免出问题而不报错。

下一节:在本章中,我想描绘一下大局:您将在本书中学到什么?它如何适应 Web 开发的整体环境?