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!
Hank Wang has made a command-line tool for SJSJ if you want all the JavaScript goodness directly from your terminal: https://github.com/hanksudo/SJSJ-cli.
Andrew Romanov is translating SJSJ into Russian: https://github.com/andrew--r/SJSJ.
You can also check the chrome extension at https://github.com/ismnoiet/JSJargon, created by ismnoiet.
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
- 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.
- Arity: the number of arguments of a function.
- Babel: a JavaScript transformation toolkit which started as an ECMAScript 2015 / ES6 code translator (transpiler).
- Backbone: a structural framework for dynamic web apps.
- 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.
- 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.
- 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.
- D3.js: a library for manipulating documents based on data.
- Design Patterns: to be completed.
- DOM: a platform- and language-neutral interface that allow programs and scripts to dynamically access and update the content, structure and style of documents.
- ECMAScript: the standardized specification of the scripting language used by JavaScript.
- 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.
- 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.
- Flux: an application structure focusing on improved data flow.
- Four: a framework to develop 3D content for the web.
- Grunt: a task runner aiming at automating tedious and possibly complex tasks.
- Gulp: a task runner aiming at automating tedious and possibly complex tasks.
- 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.
- IIFE (Immediately Invoked Function Expression): a function that gets called immediately after declaration.
- Isomorphic: an application is said to be isomorphic (universal) when its code can run both in the client and the server.
- 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.
- JSX: an XML-like syntax extension to JavaScript.
- Knockout: a library that helps developers creating user interfaces with a clean underlying data model.
- LocalForage: to be completed.
- Lodash: an utility toolkit to extend JavaScript primitive types.
- 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.
- 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: to be completed.
- Metalsmith: a simple, pluggable static site generator.
- MEAN: the technology stack MongoDB, ExpressJS, AngularJS, and Node.js (MEAN).
- 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.
- 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.
- PhantomJS: a scripted, headless browser used for automating web page interaction.
- PhoneGap: to be completed.
- 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: to be completed.
- 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.
- QUnit: a powerful, easy-to-use JavaScript unit testing framework.
- Q: a library to create and manage promises.
- 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.
- 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.
- Require.js: a browser based module loader using AMD.
- Sails: a realtime MVC Framework for Node.js.
- Singleton Pattern: a design pattern that restricts the instantiation of a class to one object.
- 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.
- 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.
- 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.
- 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.
- XHR: XMLHttpRequest is an API that provides client functionality for transferring data between a client and a server without page refresh.
- Yeoman: a generator builder to speed up the setup and installation process of a project or part of a project.
- Zepto: a lightweight jQuery clone, without all the browser-compatibility specific code.