Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
浏览器如何支持JavaScript_Javascript_Browser - Fatal编程技术网

浏览器如何支持JavaScript

浏览器如何支持JavaScript,javascript,browser,Javascript,Browser,这个问题的第一部分实际上是基于我整个下午所做的以JavaScript为中心的研究的确认请求。如果我对这些项目有任何错误,请纠正我 是“维护”JavaScript的官方标准机构 任何希望支持JavaScript的浏览器(所有/大多数浏览器都支持JavaScript),必须在浏览器代码的深处包含某种解释器(它是什么?)引擎 当有人将启用JavaScript的浏览器指向包含JavaScript代码的URI时,该浏览器将下载JS文件以及HTML、CSS等,并通过该解释器运行JS,结果输出将影响最终呈现

这个问题的第一部分实际上是基于我整个下午所做的以JavaScript为中心的研究的确认请求。如果我对这些项目有任何错误,请纠正我

  • 是“维护”JavaScript的官方标准机构
  • 任何希望支持JavaScript的浏览器(所有/大多数浏览器都支持JavaScript),必须在浏览器代码的深处包含某种解释器(它是什么?)引擎
  • 当有人将启用JavaScript的浏览器指向包含JavaScript代码的URI时,该浏览器将下载JS文件以及HTML、CSS等,并通过该解释器运行JS,结果输出将影响最终呈现页面的方式
除了这些项目之外,我还听说了JavaScript“插件”或浏览器可以拥有的模块等术语。这些插件/模块是什么?如果它们符合ECMA并且已经包含JS解释器,浏览器为什么需要它们

提前谢谢

  • ECMA是执行JS“标准”的标准机构。他们保持语言的一致性并记录在案(尽管知道它的历史,但他们作为“标准机构”的工作做得并不好)

  • JavaScript引擎是嵌入到浏览器中用于解析JavaScript源代码的软件。它将JavaScript转换为屏幕上(和屏幕下)的操作。例如V8(Chrome)、TraceMonkey(Firefox)、Chakra(IE)、Carakan(Opera)和Nitro/松鼠鱼(safari)

  • 在执行上述操作之前,必须将JavaScript代码引入要解析的浏览器(通常使用
    标记)

  • JavaScript插件/工具包只是程序员开发的代码,可以轻松地完成任务。他们只是做一些你通常会编码1000行的事情。这些代码还通过提供跨浏览器的一致性来“改进”编程。插件/工具包的例子有jQuery(以及它的UI插件jQueryUI)、YUI、Dojo等等

  • 另一方面,浏览器扩展/插件“扩展”了浏览器的功能。例如ADBlock(它阻止页面广告)、FlashGet(在页面上下载flash文件)。这些人被编程到浏览器中,而不是页面中。然而,最近,这些扩展是由JavaScript支持的,因为它很容易编程

      • ECMA是执行JS“标准”的标准机构。他们保持语言的一致性并记录在案(尽管知道它的历史,但他们作为“标准机构”的工作做得并不好)

      • JavaScript引擎是嵌入到浏览器中用于解析JavaScript源代码的软件。它将JavaScript转换为屏幕上(和屏幕下)的操作。例如V8(Chrome)、TraceMonkey(Firefox)、Chakra(IE)、Carakan(Opera)和Nitro/松鼠鱼(safari)

      • 在执行上述操作之前,必须将JavaScript代码引入要解析的浏览器(通常使用
        标记)

      • JavaScript插件/工具包只是程序员开发的代码,可以轻松地完成任务。他们只是做一些你通常会编码1000行的事情。这些代码还通过提供跨浏览器的一致性来“改进”编程。插件/工具包的例子有jQuery(以及它的UI插件jQueryUI)、YUI、Dojo等等

      • 另一方面,浏览器扩展/插件“扩展”了浏览器的功能。例如ADBlock(它阻止页面广告)、FlashGet(在页面上下载flash文件)。这些人被编程到浏览器中,而不是页面中。然而,最近,这些扩展是由JavaScript支持的,因为它很容易编程

          • ECMA是为JavaScript实现的ECMAScript设置标准的官方标准机构。ActionScript也是如此。ECMAScript涵盖了该语言的所有编程要点和基本结构

          • ECMA规范不包括面向浏览器的API,如DOM。W3CDOM标准涵盖了这一点,该标准旨在定义与语言无关的API。IE从IE6开始就相当坚定地支持ECMA规范,而在IE9之前,IE几乎完全忽略了DOM内容,支持自己的专有BS

          • 规范本身只是一系列关于语言如何工作的规则。只要您编写了相同的内容,并且给定浏览器的解释器给出了规范定义的预期结果,它就符合所考虑的任何版本

          • 解释器解析并标记您编写的实际文本,并将其转换为浏览器运行时环境读取的指令。现代浏览器使用实际的JIT编译器,在执行JS时将其转换为字节码,这样浏览器运行时环境本身就不需要翻译

          • 大多数浏览器缓存js文件的实际二进制文件。因此,当一个新页面链接到同一服务器位置时,同一域中链接到同一服务器位置的页面不必下载同一文件两次。这与任何资源(图像、css文件等)都是一样的,我不相信它们会缓存任何向下解释的结果,但我认为在JIT的情况下,某些预执行例程(基本上是JIT预处理)的结果可能会保存在内存中(我这方面纯粹是猜测,但似乎有点无聊)

          • 在使用插件、框架、工具、库等词汇方面,我们的语言有点快,有点松。。。通常都是JavaScript。你可以像其他JS一样,通过链接文件或剪切粘贴到现有文件中来“插入”。然而,对于插件,人们通常意味着它可以与一些现有的pre-fab JS一起使用,比如JQuery,它倾向于通过向对象添加方法来扩展