
For instance, Node.js supports functions that allow JavaScript to read/write arbitrary files, perform network requests, etc. JavaScript’s capabilities greatly depend on the environment it’s running in. It does not provide low-level access to memory or the CPU, because it was initially created for browsers which do not require it. Modern JavaScript is a “safe” programming language. It even watches the compiled script as it runs, analyzes the data that flows through it, and further optimizes the machine code based on that knowledge. The engine applies optimizations at each step of the process. And then the machine code runs, pretty fast.Then it converts (“compiles”) the script to machine code.The engine (embedded if it’s a browser) reads (“parses”) the script.

For instance, if “a feature X is supported by V8”, then it probably works in Chrome, Opera and Edge.Įngines are complicated. The terms above are good to remember because they are used in developer articles on the internet.


But Java was very popular at that time, so it was decided that positioning a new language as a “younger brother” of Java would help.īut as it evolved, JavaScript became a fully independent language with its own specification called ECMAScript, and now it has no relation to Java at all. When JavaScript was created, it initially had another name: “LiveScript”.
