1
Since Ecmascript 5, Javascript has traditionally had two execution contexts:
- Sloopy mode (informal name used to refer mode enabled by default in most execution contexts).
- Strict mode, explicitly empowered through Directive
"use strict"
or automatically in some language contexts, such as class blocks.
Enabling the strict way implies some subtle changes in the way language works. This behavior is best explained in this another question.
Starting with ES6, the Ecmascript Modules, which, as far as I know, entail the existence of a third implementation context, with some rules exclusive to codes executed in ES modules.
- Where module execution context is enabled?
- What are your rules?
- What changes from the already existing strict mode?