A common mistake is apply the word “EcmaScript” to address the document “ECMA-262”. This document is the specification of the EcmaScript, and EcmaScript is a programming language.
The ES (EcmaScript) can be used to code applications for different platforms using different programming techniques (paradigms). You can use ES to create applications for: web (client and server-side), smartphones, and computers.
If you are a beginner in EcmaScript is important to understand some concepts before study the language in practice. But don’t worry if you don’t understand perfectly from the first time reading about it.
The Host Environment is where the EcmaScript source code is being interpreted, for example: a browser, a server, a smartphone operating system.
Host Facilities are the features offered by the Host Environment, for example, in browsers you can use Web APIs as DOM, CSSOM, Fetch, and others.
Core Language is an concept to address the set of features offered by the EcmaScript itself independent of the Host Environment.
In a Class-Based programming language you use a static template from where you create your objects: the class. In a Prototype-Based programming language, as EcmaScript, you use a dynamic template from where you create your objects: the prototype.
While using an dynamic template for create the objects you can change this template in runtime. While using an static template you cannot do it.
In EcmaScript all within in an object, for example, the global variables are properties of the object referenced by the identifier globalThis.
EcmaScript supports different programming paradigms (programming techniques), and you can combine different paradigms in the same application.
EcmaScript allows declared variables (using var) and declared functions to be accessed anytime.
EcmaScript automatically allocates and releases the memory according is needed by your source code.
The memory is allocated when you create an object. And is released when the object is not being used.
Using EcmaScript you can make applications for different platforms, not only to the web and not only to the client-side. For example: using NodeJS you can write code to the server-side, and using React Native you can write code to Smartphones.