0

我是 JavaScript 新手。我指的是关于 JavaScript 框架的页面:什么是 JavaScript 框架?

我知道 JavaScript 是用于 Web 客户端的。它是一种面向对象的脚本语言。上面的链接写道:

然而,使用 JavaScript 并不是一件容易的事,主要是因为在尝试为多个 Web 浏览器提供支持时会出现复杂情况。

与 HTML 和 CSS 一样,不同的浏览器有不同的 JavaScript 实现,确保您的 JavaScript 代码跨浏览器兼容可能是一场噩梦。

第二部分说不同的浏览器有不同的实现。为什么?既然 JavaScript 和 Java、C 等一样只是一门语言,为什么不同的浏览器需要不同的实现呢?

只要发布了 JavaScript 语言规范,每个浏览器都应该遵循语言要求。那么为什么他们有不同的实现呢?这里的实现是什么意思?


编辑:

JavaScript不是面向对象的语言!它是一种基于对象的语言!

4

3 回答 3

3

这里的“实现”是浏览器供应商根据ECMAScript规范实现的引擎。

只要发布了java脚本语言规范,每个浏览器都应该遵循语言要求

他们确实

那么为什么他们有不同的实现呢?

因为他们遵循相同的规范,但构建了自己的引擎。

于 2013-05-07T02:45:49.580 回答
1

就是那样子。并非每个浏览器都使用相同的JavaScript 引擎,如果您想阅读一些有趣的历史,请单击该链接。

他们都试图成为最快的。是的,他们都应该遵循完全相同的规范,我相信他们也遵循了完全相同的规范,但是仍然有人参与其中,他们对规范的解释可能略有不同。

这些引擎是并行开发的(同时),因为他们的开发人员都没有时间等待其他人先开发一些东西,然后检查他们是否可以遵守与他们的规范完全相同的解释竞争对手。

于 2013-05-07T02:48:35.953 回答
0

JavaScript 是一种 ECMA 标准编程语言,不需要在浏览器中运行。浏览器有一个 JavaScript 引擎,可以为您运行脚本,但并非所有浏览器都以相同的方式运行它。

值得注意的是 IE 和其他浏览器处理事件的方式,有时不支持新功能。IE 实现了诸如 innerHTML 之类的东西,这不是 ECMA 标准,但由于它的流行,其他浏览器采用了它。它现在可能是标准的一部分,但我不确定。

这样做的原因是,当 NetScape 支持 JavaScript 时,IE 也实现了它,但具有其他(额外)功能。由于他们都试图竞争成为“更好”的浏览器,因此他们没有一起制定标准。

在浏览器中使用 JavaScript 的一个很好的来源是MDN它通常向您展示浏览器对 JS 方法和属性的支持以及一些代码以添加对不支持某些功能的浏览器的支持(例如 DOMParser 解析文本/html)

在过去的几年里,IE 已经采取措施更加符合 ECMA 标准,因此希望在未来我们将不得不越来越少地依赖 JavaScript 代码中的特征检测。

您仍然有一个问题,即 JavaScript 是一种仍在发展的语言,并且添加了越来越多的功能。当它们是新的时,浏览器仍然会以不同的方式实现它或不实现所有功能(如 webcrt)。您可能还必须支持几年前的浏览器,并且在几年内会发生很多变化。

于 2013-05-07T02:52:34.007 回答