V8 and Rhino are examples of Javascript compilers. Respectively, for internal native code (C++) and for Bytecode JAVA. There are also other interpreters that use a JIT compiler.
To the letter, Javascript is both interpreted and compiled - this specification is not necessarily the responsibility of the language, but in the Javascript scenario, you can delegate which interpretation or compilation engine you want to use.
If you want to use the V8, the Google explains how to work on your engine which, as already said, is compiled. Naturally web applications, in turn, will use the engines and devices provided by the client’s browsers, which bring with them interpreting mechanisms and which will not compile Javascript in a standard.
Watch out here: precompilation
A recurring error is confusing compilation of Assets with language compilation. When we use Rails, for example, we can use Asset Pipeline to precomp our Osets, causing an amount X archival .js
unite and compress to form one, minified, resulting in a (erroneous) feeling of "compilation".
In fact, there was yes a compilation, but she nay is the same one you’re thinking of, like what C# or JAVA do.
That’s a good question
– RodrigoBorth