JavaScript引擎如何使用


这篇文章主要介绍了JavaScript引擎如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript引擎如何使用文章都会有所收获,下面我们一起来看看吧。注意:本文主要基于 Node.js 和基于 Chrome 的浏览器使用的 V8 引擎。HTML解析器遇到带有源代码的script标签。来自此源的代码从网络,缓存或已安装的服务工作程序中加载。响应是将请求的脚本作为字节流,由字节流解码器负责。字节流解码器在下载字节流时对其进行解码。字节流解码器从已解码的字节流中创建令牌。例如,0066解码为f, 0075到u,006e到n, 0063到c, 0074到t, 0069到i, 006f到o, 006e到n,后面跟一个空格。就像JS中的function,这是 JS 中的一个保留关键字,它会创建一个标记,并将其发送给解析器。对于字节流的其余部分也是如此。该引擎使用两个解析器:预解析器(pre-parser)和解析器(parser)。预解析器只提前检查标记,以查看是否有语法错误。这可以减少发现代码中的错误所需的时间,否则解析器稍后就会发现这些错误。如果没有错误,解析器将根据从字节流解码器接收到的标记创建节点。使用这些节点,它创建了一个抽象语法树,即AST。接下来,轮到解释器(interpreter)了。遍历AST并根据AST包含的信息生成字节码的解释器。一旦字节码完全生成,AST就会被删除,从而清除内存空间。最后,生成的机器码就可以在电脑上运行了。虽然字节码很快,但它可以更快。当这个字节码运行时,将 香港云主机生成信息。它可以检测某些行为是否经常发生,以及所使用数据的类型。也许已经调用一个函数几十次了:现在是时候优化它了,这样它会运行得更快!字节码与生成的类型反馈一起发送到优化编译器(ptimizing compiler)。优化的编译器接收字节码和类型反馈,并根据这些信息生成高度优化的机器码。JS 是一种动态类型语言,这意味着数据类型可以不断变化。如果 JS引擎每次都要检查某个值的数据类型,那么速度会非常慢。相反,JS 引擎使用一种称为内联缓存(inline caching)的技术。它将代码缓存在内存中,希望将来它会以相同的行为返回相同的值.假设某个函数被调用100次,并且到目前为止总是返回相同的值。它将假设在第101次调用它时也会返回这个值。假设我们有以下函数sum,(到目前为止)每次都使用数值作为参数来调用它:执行结果为 3。下次调用它时,它将假定我们再次使用两个相同数字对其进行调用。如果假投,那么就不需要动态查找,只需要使用存储在特定内存槽中的结果,该槽已经有一个引用。否则,如果假设不正确,它将反优化代码并恢复到原始字节码,而不是优化后的机器码。例如,下一次调用它时,我们传递的是字符串而不是数字。因为 JS 是动态类型的,所以这样做不会有任何错误。关于“JavaScript引擎如何使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“JavaScript引擎如何使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注开发云行业资讯频道。

相关推荐: Greenplum-cc-web安装配置的示例分析

这篇文章主要为大家展示了“Greenplum-cc-web安装配置的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Greenplum-cc-web安装配置的示例分析”这篇文章吧。 1. 进入下面地址下载Gr…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 11/11 23:08
下一篇 11/12 14:21

相关推荐