什么是一个JavaScript引擎
JS引擎
执行JS代码的程序
例如比较出名的就是GOOGLE的V8引擎,当然其他浏览器也有各自的引擎
JS引擎一般会有两部分组成,一个是调用栈,一个是堆;
调用栈就是我们代码实际执行的地方,而堆是对象存储的地方,内存中的对象都存储在那里;
那我们知道调用栈是执行代码的地方的,那它是如何将代码转换为机器代码的呢?
计算机科学旁注,编译and解释
汇编:整个代码被立即转换成机器码,并写入一个二进制文件,可由电脑执行。
解释:解释器在原代码中运行,并逐步执行
在最开始,JS就是一种纯解释性语言,解释型语言最大的确定就是比编译语言会慢很多!但是现在的JavaScript已经并不是一种单纯的解释型语言了,是一种混合型的
即时(JIT)编译:整个代码立即转换成机器码,然后立即执行。
Javascript的现代即时编译
JavaScript运行时
JavaScript运行时(JavaScript runtime)是指用于执行JavaScript代码的环境或平台。它提供了JavaScript语言的解释器和其他必要的工具,使得JavaScript代码能够在计算机上运行。
常见的JavaScript运行时包括:
- 浏览器环境:浏览器是最常见的JavaScript运行时环境之一。每个现代浏览器都内置了JavaScript引擎,如Google Chrome的V8引擎、Mozilla Firefox的SpiderMonkey引擎等。浏览器环境提供了与DOM(文档对象模型)和BOM(浏览器对象模型)交互的能力,使得JavaScript可以操作网页内容、处理用户事件等。
- 服务器环境:Node.js是一个流行的JavaScript运行时环境,它基于Chrome的V8引擎,并提供了一些额外的API和模块,使得JavaScript可以在服务器端运行。Node.js允许开发者构建高性能的服务器应用程序,处理网络请求、访问数据库等。
- 移动应用环境:一些移动应用开发框架,如React Native和Ionic,使用JavaScript作为开发语言,并提供了特定的JavaScript运行时环境,使得JavaScript代码可以在移动设备上运行。
- 嵌入式环境:JavaScript运行时还可以嵌入到其他应用程序中,例如桌面应用程序、游戏引擎等。通过嵌入JavaScript运行时,开发者可以在自己的应用程序中执行JavaScript代码,实现一些定制化的功能。
无论在哪种JavaScript运行时环境中,JavaScript代码的执行都遵循一定的规则和机制,包括变量作用域、函数调用、事件循环等。开发者可以利用JavaScript运行时提供的API和功能,编写出丰富的应用程序。