Glossary
Execution context
In Javascript we differentiate between three types of execution context or environments: Global, Functional, Eval. The Execution Context is an abstract concept of the environment (context) in which the current code is being evaluated in.
Global execution context:
Default execution context in which JS code gets executed as soon as the js-file is loaded by the browser (or run in node). In contrary to functional or eval context there is only one global execution context possible.
Functional execution context:
Each function that is envoked creates its own functional execution context. Variables declared within that execution context are not accessible from outside that function (only via closures) . The functional execution context has access to its outer execution context(s) in which it was envoked (Lexical environment, scope) up to the global execution context. Read about Scope, Lexical environment and Closures to understand the execution context fully.
Eval execution context:
The execution context inside an eval function eval().
ES6+
ES6 refers to the ECMAScript 2015 specification of Javascript which included a major update to the languages in the first time for 6 years since ES5 came out in 2009. ES6 was the popularized name prior to release but the committee that oversees ECMAScript specifications made the decision to move to annual updates. With this change, the edition was renamed to ECMAScript2015 to reflect the year of release. Subsequent releases will therefor also be named according to the year they are released.
ES6 adds significant new syntax for writing complex applications, including classes and modules, but defines them semantically in the same terms as ES5. Other new features include arrows, classes, enhanced object literals, template strings, destructuring, default + rest + spread, let + const, iterators + for..of, generators, unicode, modules, module loaders, map + set + weakmap + weakset, proxies, symbols, subclassable built-ins, promises math + number + string + array + object APIs, binary and octal literals, reflect api and tail calls.
iFrame
An iFrame is an HTML document embedded inside another HTML document on a website. A common usecase for an iFrame is to insert content from another source (e.g. Advertising) into a website.
Callback hell
A callback function (aka higher-order function) is a function that is passed to another function as a parameter and eventually called from inside this other function (callback). Callback hell refers to a secenario in which callbacks are (several level deep) nested within other callback functions and therefore make it difficult to understand and maintain them.
Lazy Loading
Lazy loading is a design pattern to defer initialization of an object until the point at which it is needed. A common use-case for a website/ app is to load only images which are currently viewed by the user and “after-load” the missing ones based on the user’s interaction. This technique saves bandwith and decreases pageload times. It is good practice to initiate the lazy loading of images a few hundred pixels before it would come to the user’s viewport to ensure a smooth user experience.