Awesome
Simplified JavaScript Jargon (short SJSJ) is a community-driven attempt at explaining the loads of buzzwords making the current JavaScript ecosystem in a few simple words. The idea is not to replace individual documentations, but to act as some kind of glossary that can be easily referenced.
If you are willing to contribute, open a pull request to complete, update or fill in a section. Thank you for doing so!
Related projects
- A Russian version of SJSJ by Andrew Romanov: https://github.com/andrew--r/SJSJ
- A CLI tool for SJSJ by Hank Wang: https://github.com/hanksudo/SJSJ-cli
- A Chrome extension for SJSJ by ismnoiet: https://github.com/ismnoiet/JSJargon
- A data crawler for SJSJ by myself
Glossary
A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
A
- AJAX: a technology for asynchronous HTTP requests.
- AMD: a standard defining how to load JavaScript libraries or modules asynchronously.
- AngularJS: a structural framework for dynamic web apps.
- Apache Cordova (formerly PhoneGap): a popular mobile application development framework originally created by Nitobi.
- Arity: the number of arguments of a function.
B
- Babel: a JavaScript transformation toolkit which started as an ECMAScript 2015 / ES6 code translator (transpiler).
- Backbone: a structural framework for dynamic web apps.
- BEM: a methodology and libraries developed and used at Yandex for building user interfaces.
- Bluebird: a fully featured Promise library with focus on innovative features and performance.
- Bower: a package manager for front-end dependencies.
- Broccoli: a fast and reliable asset pipeline.
- Browserify: a tool making possible to use the
require
function from Node.js within the browser. - Brunch: a tool focusing on the production of deployment-ready files from development files.
C
- Canvas: an HTML element for graphic applications in 2D or 3D.
- Chai: an assertion library used with a JavaScript testing framework.
- Closure: a way of referencing variables from a child function while retaining their value even if it changes in the parent function.
- Closure Compiler: a JavaScript checker and optimizer.
- CoffeeScript: a language that compiles into JavaScript.
- CommonJS: a project with the goal of specifying an ecosystem for JavaScript outside the browser (for example, on the server or for native desktop applications).
- CORS: a way for a server to make things accessible to pages hosted on other domains.
- CouchDB: a NoSQL database with JavaScript as query language and HTTP as API.
- Currying: the process to transform a function with multiple parameters into a chain of functions of one parameter.
D
- D3.js: a library for manipulating documents based on data.
- Design Patterns: a general reusable solution to a commonly occurring problem within a given context in software design.
- DOM: a platform- and language-neutral interface that allow programs and scripts to dynamically access and update the content, structure and style of documents.
E
- ECMAScript: the standardized specification of the scripting language used by JavaScript.
- Electron: a framework based on Node.js lets you write cross-platform desktop applications using JS, HTML and CSS.
- Ember: an application framework based on the model-view-controller pattern.
- ESLint: a JavaScript code linter.
- Express: a fast, un-opinionated, minimalist web framework for Node.js.
- Ext JS: a pure JavaScript application framework for building interactive cross platform web applications.
F
- Facade Pattern: a software design pattern commonly used with object-oriented programming. The name is by analogy to an architectural facade.
- Factory Pattern: a creational pattern that uses factory methods to deal with the problem of creating objects without having to specify the exact class of the object that will be created.
- Falcor: a JavaScript library for efficient data fetching.
- Flow: a static type checker, designed to find type errors in JavaScript programs.
- Flux: an application structure focusing on improved data flow.
- Four: a framework to develop 3D content for the web.
G
- Grunt: a task runner aiming at automating tedious and possibly complex tasks.
- Gulp: a task runner aiming at automating tedious and possibly complex tasks.
H
- Hapi: a Node JS framework for writing services and more.
- Hoisting: an action performed by the JavaScript interpreter that moves function and variable declarations to the top of their containing scope.
I
- IIFE (Immediately Invoked Function Expression): a function that gets called immediately after declaration.
- Ionic: a HTML5 mobile framework to build beautiful hybrid native mobile applications using AngularJS and Cordova.
- Isomorphic: an application is said to be isomorphic (universal) when its code can run both in the client and the server.
J
- Jasmine: a testing framework for BDD (Behaviour-Driven Development).
- jQuery: a fast, small, and feature-rich client-side library.
- JSCS: a JavaScript code linter.
- JSHint: a JavaScript code linter.
- JSLint: a JavaScript code linter.
- JSON (JavaScript Object Notation): a lightweight data-interchange format.
- JSON-LD: JSON for Linked Data.
- JSPM: Javascript Package Manager: NPM with its own build system and multiple resources management.
- JSX: an XML-like syntax extension to JavaScript.
K
- Knockout: a library that helps developers creating user interfaces with a clean underlying data model.
L
- LocalForage: a fast and simple storage library for JavaScript.
- Lodash: an utility toolkit to extend JavaScript primitive types.
M
- MEAN: the technology stack MongoDB, ExpressJS, AngularJS, and Node.js (MEAN).
- Mediator Pattern: an object that encapsulates how a set of objects interact.
- Memoize: an optimization used to speed up consecutive function calls by caching the result of calls with identical input.
- Metalsmith: a simple, pluggable static site generator.
- Meteor: a JavaScript web framework that allows rapid prototypic web development.
- Mocha: an extensible testing framework for TDD (Test-Driven Development) or BDD (Behaviour-Driven Development).
- Modernizr: a browser feature detection library, useful to modify page styles when a feature is not available in the browser.
- Module Pattern: a design pattern used to implement the concept of software modules, defined by modular programming, in a programming language with incomplete direct support for the concept.
- Moment.js: a library to parse, validate, manipulate and display dates.
- MongoDB: a Javascript NoSQL database.
- Mootools: a collection of JavaScript utilities designed for the intermediate to advanced JavaScript developer. It allows you to write powerful and flexible code with its elegant, well documented, and coherent APIs.
N
- Nightmare: a high-level browser automation library.
- NightwatchJS: a framework for browser automated testing.
- Node.js: a cross-platform runtime environment for developing server-side applications built on V8 engine.
- npm: a utility to help publishing packages to, and installing from, an npm repository.
- nvm: a utility to help run multiple versions of Node.js on the same machine.
O
- Observer Pattern: a software design pattern in which an object, called the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually by calling one of their methods.
P
- PhantomJS: a scripted, headless browser used for automating web page interaction.
- Polymer: Google’s library for creating Web Components.
- Promise: a proxy for a value not necessarily known immediately but that will eventually be resolved.
- Prototype.js: a JavaScript framework that aims to ease development of dynamic web applications. It offers a familiar class-style OO framework, extensive Ajax support, higher-order programming constructs, and easy DOM manipulation.
- Prototype Pattern: a creational design pattern in software development. It is used when the type of objects to create is determined by a prototypical instance, which is cloned to produce new objects.
Q
- Q: a library to create and manage promises.
- QUnit: a powerful, easy-to-use JavaScript unit testing framework.
R
- Ramda: a practical functional library for JavaScript programmers.
- React: a library developed and used at Facebook for building user interfaces.
- Redux: a predictable state container for apps.
- Require.js: a browser based module loader using AMD.
- Revealing Module Pattern: a design pattern conceptually based on the Module Pattern. The only difference is that the revealing module pattern was engineered as a way to ensure that all methods and variables are kept private until they are explicitly exposed.
- RxJS: a library for asynchronous programming using observable streams.
S
- Sails: a realtime MVC Framework for Node.js.
- Singleton Pattern: a design pattern that restricts the instantiation of a class to one object.
T
- Three.js: a lightweight 3D library to create and display animated 3D computer graphics on a Web browser.
- TypeScript: a super-set of the JavaScript language that introduces types.
U
- UMD: a pattern of universal module definition for JavaScript modules.
- Underscore: a swiss army knife, focusing on helper methods for most built-in objects.
- Universal: an application is said to be universal (isomorphic) when its code can run both in the client and the server.
V
- V8: Google’s open source JavaScript engine. It’s what Chrome is running, but it’s also used for other projects like Node.js and MongoDB.
- Vanilla: a term for library/framework free JavaScript.
- Virtual DOM: a copy of the DOM in memory that the program can modify instead of directly interfacing with the "real" DOM to help speed up interactions
- VueJS: a library for creating user interfaces based on data models.
W
- WebGL (Web Graphics Library): a JavaScript API for rendering interactive 3D and 2D graphics within any compatible web browser without the use of plug-ins.
- Webpack: a dependency manager with a friendly and fast development environment, simplifying a lot of common tasks.
X
- XHR: XMLHttpRequest is an API that provides client functionality for transferring data between a client and a server without page refresh.
Y
- Yeoman: a generator builder to speed up the setup and installation process of a project or part of a project.
Z
- Zepto: a lightweight jQuery clone, without all the browser-compatibility specific code.
Export entries as JSON
This repository includes a tiny Node.js script that exports all the entries as JSON. To use it, clone the repository and run:
npm install
npm run export -- data.json
Special thanks
A special thanks to Bohdan Shtepan and Kostas Minaidis (amongst others) for there outstanding contributions to make this project more and more relevant every day!