Home  >  Article  >  Web Front-end  >  What does the JS engine look like when it is running?

What does the JS engine look like when it is running?

php中世界最好的语言
php中世界最好的语言Original
2017-12-04 13:49:142121browse

We know that the so-called JavaScript engine is a virtual machine that specializes in processing JavaScript scripts. It is usually included in a web browser and is used to parse and execute JavaScript scripts. So today let’s analyze in detail what the JS engine looks like when running.

The JavaScript virtual machine is a process virtual machine. One of its characteristics is that it has a virtual instruction set (ISA).

The most popular JavaScript engine is of course Google’s V8 engine. The V8 engine is used in Chrome and Node, but unlike other JavaScript engines, V8 only uses a JIT compiler and does not use Interpreter to execute JavaScript implementations. There is a simple diagram below to illustrate their relationship:

This engine is mainly composed of two groups:

Memory heap: This is where memory allocation occurs. Call Stack: This is where your code is executed

Runtime

Some browser APIs are often used (for example: setTimeout), but these APIs are not provided by the engine. . So, where did they come from? In fact, the actual situation here is a bit complicated.

In the above figure, when the main thread is running, a heap and a stack are generated. The code in the stack calls various external APIs, which are in the "Task Queue " Add various events (click, load, done). As long as the code in the stack is executed, the main thread will read the "task queue" and execute the callback functions corresponding to those events in sequence.

The code in the execution stack (synchronous task) is always executed before reading the "task queue" (asynchronous task).

In addition to placing events for asynchronous tasks, the "task queue" can also place timed events, that is, specifying how long certain code will be executed after.

So we have many APIs outside of the engine, which we call the Web API provided by the browser, such as DOM, AJAX, setTimeout, etc.

In summary, visually speaking, the JavaScript engine is a machine that can work, and the JavaScript virtual machine is the execution core of this machine, and the JavaScript runtime is the machine.


# I believe you have mastered the methods after reading these cases. For more exciting information, please pay attention to other related articles on the php Chinese website!

Related reading:

Summary of the front-end js framework and explanation of its uses

How to use the jssplice() method in JS development

Implementation steps of DOM programming in html5

The above is the detailed content of What does the JS engine look like when it is running?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn