不同的浏览器有不同的JavaScript实现

Different browsers have separate implementation of JavaScript

本文关键字:实现 JavaScript 浏览器      更新时间:2023-09-26

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

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

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

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

第二部分说不同的浏览器有不同的实现。为什么?因为JavaScript只是一种像Java、C等语言。为什么不同的浏览器需要不同的实现?

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


编辑:

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

"Implementation"是浏览器厂商根据ECMAScript规范实现的引擎。

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

他们做了

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

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

事情就是这样。不是每个浏览器都使用相同的JavaScript引擎,如果你想阅读一些有趣的历史,请点击链接。

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

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

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

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

这样做的原因是,当NetScape提供JavaScript支持时,IE也实现了它,但附带了其他(额外)功能。因为他们都试图竞争成为"更好"的浏览器,所以他们没有共同制定一个标准。

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

在过去的几年里,IE已经朝着更加符合ECMA的方向迈进了一步,所以希望在未来我们可以在JavaScript代码中越来越少地依赖于特性检测。

你仍然有一个问题,JavaScript是一种仍在发展的语言,越来越多的功能被添加。当它们是新的浏览器时,仍然会以不同的方式实现它或不实现所有功能(如webcrt)。你可能还需要支持一些已经使用了好几年的浏览器,而这些浏览器在几年内会发生很多变化。