UNPKG

27.1 kBMarkdownView Raw
1# 30-seconds-of-code JavaScript Glossary
2
3## Table of Contents
4
5* [`AJAX`](#ajax)
6* [`API`](#api)
7* [`Argument`](#argument)
8* [`Array`](#array)
9* [`Asynchronous programming`](#asynchronous-programming)
10* [`Automatic semicolon insertion`](#automatic-semicolon-insertion)
11* [`Boolean`](#boolean)
12* [`Callback`](#callback)
13* [`Character encoding`](#character-encoding)
14* [`Class`](#class)
15* [`Closure`](#closure)
16* [`CoffeeScript`](#coffeescript)
17* [`Constant`](#constant)
18* [`Constructor`](#constructor)
19* [`Continuous Deployment`](#continuous-deployment)
20* [`Continuous Integration`](#continuous-integration)
21* [`CORS`](#cors)
22* [`Cross-site scripting (XSS)`](#cross-site-scripting-xss)
23* [`CSS`](#css)
24* [`CSV`](#csv)
25* [`Currying`](#currying)
26* [`Deserialization`](#deserialization)
27* [`DNS`](#dns)
28* [`DOM`](#dom)
29* [`Domain name registrar`](#domain-name-registrar)
30* [`Domain name`](#domain-name)
31* [`Element`](#element)
32* [`ES6`](#es6)
33* [`Event-driven programming`](#event-driven-programming)
34* [`Event loop`](#event-loop)
35* [`Express`](#express)
36* [`Factory functions`](#factory-functions)
37* [`First-class function`](#first-class-function)
38* [`Flexbox`](#flexbox)
39* [`Function`](#function)
40* [`Functional programming`](#functional-programming)
41* [`Functor`](#functor)
42* [`Garbage collection`](#garbage-collection)
43* [`Git`](#git)
44* [`Higher-order function`](#higher-order-function)
45* [`Hoisting`](#hoisting)
46* [`HTML`](#html)
47* [`HTTP and HTTPS`](#http-and-https)
48* [`Integer`](#integer)
49* [`Integration testing`](#integration-testing)
50* [`IP`](#ip)
51* [`jQuery`](#jquery)
52* [`JSON`](#json)
53* [`MDN`](#mdn)
54* [`Module`](#module)
55* [`MongoDB`](#mongodb)
56* [`Mutable value`](#mutable-value)
57* [`MVC`](#mvc)
58* [`Node.js`](#nodejs)
59* [`NoSQL`](#nosql)
60* [`Npm`](#npm)
61* [`Object-oriented programming`](#object-oriented-programming)
62* [`Object`](#object)
63* [`Prepared statements`](#prepared-statements)
64* [`Promise`](#promise)
65* [`Prototype-based programming`](#prototype-based-programming)
66* [`Pseudo-class`](#pseudo-class)
67* [`Pseudo-element`](#pseudo-element)
68* [`PWA`](#pwa)
69* [`React`](#react)
70* [`Recursion`](#recursion)
71* [`Regular expressions`](#regular-expressions)
72* [`Repository`](#repository)
73* [`Responsive web design`](#responsive-web-design)
74* [`Scope`](#scope)
75* [`Selector`](#selector)
76* [`SEO`](#seo)
77* [`Serialization`](#serialization)
78* [`Shadow DOM`](#shadow-dom)
79* [`SQL injection`](#sql-injection)
80* [`SQL`](#sql)
81* [`SSL`](#ssl)
82* [`Stream`](#stream)
83* [`Strict mode`](#strict-mode)
84* [`String`](#string)
85* [`SVG`](#svg)
86* [`Template literals`](#template-literals)
87* [`TypeScript`](#typescript)
88* [`Unit testing`](#unit-testing)
89* [`URI`](#uri)
90* [`URL`](#url)
91* [`UTF-8`](#utf-8)
92* [`Value vs reference`](#value-vs-reference)
93* [`Variable`](#variable)
94* [`Viewport`](#viewport)
95* [`Vue`](#vue)
96* [`WebAssembly`](#webassembly)
97* [`Web Components`](#web-components)
98* [`WebGL`](#webgl)
99* [`WebRTC`](#webrtc)
100* [`WebSockets`](#websockets)
101* [`XHTML`](#xhtml)
102* [`XML`](#xml)
103* [`Yarn`](#yarn)
104
105
106### AJAX
107
108Asynchronous JavaScript and XML (known as AJAX) is a term that describes a new approach to using multiple technologies together in order to enable web applications to make quick updates to the user interface without reloading the entire browser page.
109
110### API
111
112API stands for Application Programming Interface and is a set of features and rules provided by a provided by a software to enable third-party software to interact with it.
113The code features of a web API usually include methods, properties, events or URLs.
114
115### Argument
116
117An argument is a value passed as an input to a function and can be either a primitive or an object.
118In JavaScript, functions can also be passed as arguments to other functions.
119
120### Array
121
122Arrays are used to store multiple values in a single variable.
123Arrays are ordered and each item in an array has a numeric index associated with it.
124JavaScript arrays are zero-indexed, meaning the first element's index is 0.
125
126### Asynchronous programming
127
128Asynchronous programming is a way to allow multiple events to trigger code without waiting for each other.
129The main benefits of asynchronous programming are improved application performance and responsiveness.
130
131### Automatic semicolon insertion
132
133Automatic semicolon insertion (ASI) is a JavaScript feature that allows developers to omit semicolons in their code.
134
135### Boolean
136
137Booleans are one of the primitive data types in JavaScript.
138They represent logical data values and can only be `true` or `false`.
139
140### Callback
141
142A callback function, also known as a high-order function, is a function that is passed into another function as an argument, which is then executed inside the outer function.
143Callbacks can be synchronous or asynchronous.
144
145### Character encoding
146
147A character encoding defines a mapping between bytes and text, specifying how the sequenece of bytes should be interpreted.
148Two commonly used character encodings are ASCII and UTF-8.
149
150### Class
151
152In object-oriented programming, a class is a template definition of an object's properties and methods.
153
154### Closure
155
156A closure is the combination of a function and the lexical environment within which that function was declared.
157The closure allows a function to access the contents of that environment.
158
159### CoffeeScript
160
161CoffeeScript is a programming language inspired by Ruby, Python and Haskell that transpiles to JavaScript.
162
163### Constant
164
165A constant is a value, associated with an identifier.
166The value of a constant can be accessed using the identifier and cannot be altered during execution.
167
168### Constructor
169
170In class-based object-oriented programming, a constructor is a special type of function called to instantiate an object.
171Constructors often accept arguments that are commonly used to set member properties.
172
173### Continuous Deployment
174
175Continuous Deployment follows the testing that happens during Continuous Integration and pushes changes to a staging or production system.
176Continuous Deployment ensures that a version of the codebase is accessible at all times.
177
178### Continuous Integration
179
180Continuous Integration (CI) is the practice of testing each change done to a codebase automatically and as early as possible.
181Two popular CI systems that integrate with GitHub are Travis CI and Circle CI.
182
183### CORS
184
185Cross-Origin Resource Sharing (known as CORS) is a mechanism that uses extra HTTP headers to tell a browser to let a web application running at one domain have permission to access resources from a server at a different domain.
186
187### Cross-site scripting (XSS)
188
189XSS refers to client-side code injection where the attacker injects malicious scripts into a legitimate website or web application.
190This is often achieved when the application does not validate user input and freely injects dynamic HTML content.
191
192### CSS
193
194CSS stands for Cascading Style Sheets and is a language used to style web pages.
195CSS documents are plaintext documents structured with rules, which consist of element selectors and property-value pairs that apply the styles to the specified selectors.
196
197### CSV
198
199CSV stands for Comma-Separated Values and is a storage format for tabular data.
200CSV documents are plaintext documents where each line represents a table row, with table columns separated by commas or some other delimiter (e.g. semicolons).
201The first line of a CSV document sometimes consists of the table column headings for the data to follow.
202
203### Currying
204
205Currying is a way of constructing functions that allows partial application of a function's arguments.
206Practically, this means that a function is broken down into a series of functions, each one accepting part of the arguments.
207
208### Deserialization
209
210Deserialization is the process of converting a format that has been transferred over a network and/or used for storage to an object or data structure.
211A common type of deserialization in JavaScript is the conversion of JSON string into an object.
212
213### DNS
214
215A DNS (Domain Name System) translates domain names to the IP addresses needed to find a particular computer service on a network.
216
217### DOM
218
219The DOM (Document Object Model) is a cross-platform API that treats HTML and XML documents as a tree structure consisting of nodes.
220These nodes (such as elements and text nodes) are objects that can be programmatically manipulated and any visible changes made to them are reflected live in the document.
221In a browser, this API is available to JavaScript where DOM nodes can be manipulated to change their styles, contents, placement in the document, or interacted with through event listeners.
222
223### Domain name registrar
224
225A domain name registrar is a company that manages the reservation of internet domain names.
226A domain name registrar must be approved by a general top-level domain (gTLD) registry or a country code top-level domain (ccTLD) registry.
227
228### Domain name
229
230A domain name is a website's address on the Internet, used primarily in URLs to identify the server for each webpage.
231A domain name consists of a hierarchical sequence of names, separated by dots and ending with an extension.
232
233### Element
234
235A JavaScript representation of a DOM element commonly returned by `document.querySelector()` and `document.createElement()`.
236They are used when creating content with JavaScript for display in the DOM that needs to be programatically generated.
237
238### ES6
239
240ES6 stands for ECMAScript 6 (also known as ECMAScript 2015), a version of the ECMAScript specification that standardizes JavaScript.
241ES6 adds a wide variety of new features to the specification, such as classes, promises, generators and arrow functions.
242
243### Event-driven programming
244
245Event-driven programming is a programming paradigm in which the flow of the program is determined by events (e.g. user actions, thread messages, sensor outputs).
246In event-driven applications, there is usually a main loop that listens for events and trigger callback functions accordingly when one of these events is detected.
247
248### Event loop
249
250The event loop handles all asynchronous callbacks.
251Callbacks are queued in a loop, while other code runs, and will run one by one when the response for each one has been received.
252The event loop allows JavaScript to perform non-blocking I/O operations, despite the fact that JavaScript is single-threaded.
253
254### Express
255
256Express is a backend framework, that provides a layer of fundamental web application features for Node.js.
257Some of its key features are routing, middleware, template engines and error handling.
258
259### Factory functions
260
261In JavaScript, a factory function is any function, which is not a class or constructor, that returns a new object.
262Factory functions don't require the use of the `new` keyword.
263
264### First-class function
265
266A programming language is said to have first-class functions if it treats them as first-class citizens, meaning they can be passed as arguments, be returned as values from other functions, be assigned to variables and stored in data structures.
267
268### Flexbox
269
270Flexbox is a one-dimensional layout model used to style websites as a property that could advance space distribution between items and provide powerful alignment capabilities.
271
272### Function
273
274Functions are self-contained blocks of code with their own scope, that can be called by other code and are usually associated with a unique identifier.
275Functions accept input in the form of arguments and can optionally return an output (if no `return` statement is present, the default value of `undefined` will be returned instead).
276JavaScript functions are also objects.
277
278### Functional programming
279
280Functional programming is a paradigm in which programs are built in a declarative manner using pure functions that avoid shared state and mutable data.
281Functions that always return the same value for the same input and don't produce side effects are the pillar of functional programming.
282
283### Functor
284
285A Functor is a data type common in functional programming that implements a `map` method.
286The `map` method takes a function and applies it to the data in the Functor, returning a new instance of the Functor with the result.
287JavaScript `Array`s are an example of the Functor data type.
288
289### Garbage collection
290
291Garbage collection is a form of automatic memory management.
292It attempts to reclaim memory occupied by objects that are no longer used by the program.
293
294### Git
295
296Git is an open-source version control system, used for source code management.
297Git allows users to copy (clone) and edit code on their local machines, before merging it into the main code base (master repository).
298
299### Higher-order function
300
301Higher-order functions are functions that either take other functions as arguments, return a function as a result, or both.
302
303### Hoisting
304
305Hoisting is JavaScript's default behavior of adding declarations to memory during the compile phase.
306Hoisting allows for JavaScript variables to be used before the line they were declared on.
307
308### HTML
309
310HTML stands for HyperText Markup Language and is a language used to structure web pages.
311HTML documents are plaintext documents structured with elements, which are surrounded by `<>` tags and optionally extended with attributes.
312
313### HTTP and HTTPS
314
315The HyperText Transfer Protocol (HTTP) is the underlying network protocol that enables transfer of hypermedia documents on the Web, usually between a client and a server.
316The HyperText Transfer Protocol Secure (HTTPS) is an encrypted version of the HTTP protocol, that uses SSL to encrypt all data transfered between a client and a server.
317
318### Integer
319
320Integers are one of the primitive data types in Javascript.
321They represent a numerical value that has no fractional component.
322
323### Integration testing
324
325Integration testing is a type of software testing, used to test groups of units/components of a software.
326The purpose of integration tests are to validate that the units/components interact with each other as expected.
327
328### IP
329
330An IP address is a number assigned to a device connected to a network that uses the Internet protocol.
331Two IP versions are currently in use - IPv4, the older version of the communication protocol (e.g. 192.168.1.100) and IPv6, the newest version of the communication protocol which allows for many different IP addresses (e.g. 0:0:0:0:ffff:c0a8:164).
332
333### jQuery
334
335jQuery is a frontend JavaScript library, that simplifies DOM manipulation, AJAX calls and Event handling.
336jQuery uses its globally defined function, `$()`, to select and manipulate DOM elements.
337
338### JSON
339
340JSON (JavaScript Object Notation) is a format for storing and exchanging data.
341It closely resembles the JavaScript object syntax, however some data types, such as dates and functions, cannot be natively represented and need to be serialized first.
342
343### MDN
344
345MDN Web Docs, formerly known as Mozilla Developer Network, is the official Mozilla website for development documentation of web standards and Mozilla projects.
346
347### Module
348
349Modules are independent, self-contained pieces of code that can be incorporated into other pieces of code.
350Modules improve maintainability and reusability of the code.
351
352### MongoDB
353
354MongoDB is a NoSQL database model that stores data in flexible, JSON-like documents, meaning fields can vary from document to document and data structure can be changed over time
355
356### Mutable value
357
358Mutable value is a type of variable that can be changed once created.
359Objects are mutable as their state can be modified after they are created.
360Primitive values are not mutable as we perform reassignment once we change them.
361
362### MVC
363
364MVC stands for Model-View-Controller and is a software design pattern, emphasizing separation of concerns (logic and display).
365The Model part of the MVC pattern refers to the data and business logic, the View handles the layout and display, while the Controller routes commands to the model and view parts.
366
367### Node.js
368
369Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine.
370Node.js can execute JavaScript code outside of the browser and can be used to develop web backends or standalone applications.
371
372### NoSQL
373
374NoSQL databases provide a mechanism to create, update, retrieve and calculate data that is stored in models that are non-tabular.
375
376### Npm
377
378Npm is a package manager for the JavaScript programming language and the default package manager for Node.js.
379It consists of a command-line client and the npm registry, an online database of packages.
380
381### Object-oriented programming
382
383Object-oriented programming (OOP) is a programming paradigm based on the concept of objects, which may contain both data and procedures which can be use to operate on them.
384JavaScript supports Object-oriented programming both via prototypes and classes.
385
386### Object
387
388Objects are data structures that contain data and instructions for working with the data.
389Objects consist of key-value pairs, where the keys are alphanumeric identifiers and the values can either be primitives or objects.
390JavaScript functions are also objects.
391
392### Prepared statements
393
394In databases management systems, prepared statements are templates that can be used to execute queries with the provided values substituting the template's parameters.
395Prepared statements offer many benefits, such as reusability, maintainability and higher security.
396
397### Promise
398
399The Promise object represents the eventual completion (or failure) of an asynchronous operation, and its resulting value.
400A Promise can be in one of these states: pending(initial state, neither fulfilled nor rejected), fulfilled(operation completed successfully), rejected(operation failed).
401
402### Prototype-based programming
403
404Prototype-based programming is a style of object-oriented programming, where inheritance is based on object delegation, reusing objects that serve as prototypes.
405Prototype-based programming allows the creation of objects before defining their classes.
406
407### Pseudo-class
408
409In CSS, a pseudo-class is used to define a special state of an element and can be used as a selector in combination with an id, element or class selector.
410
411### Pseudo-element
412
413In CSS, a pseudo-element is used to style specific parts of an element and can be used as a selector in combination with an id, element or class selector.
414
415### PWA
416
417Progressive Web App (known as PWA) is a term used to describe web applications that load like regular websites but can offer the user functionality such as working offline, push notifications, and device hardware access that were traditionally available only to native mobile applications.
418
419### React
420
421React is a frontend framework, that allows developers to create dynamic, component-based user interfaces.
422React separates view and state, utilizing a virtual DOM to update the user interface.
423
424### Recursion
425
426Recursion is the repeated application of a process.
427In JavaScript, recursion involves functions that call themselves repeatedly until they reach a base condition.
428The base condition breaks out of the recursion loop because otherwise the function would call itself indefinitely.
429Recursion is very useful when working with nested data, especially when the nesting depth is dynamically defined or unkown.
430
431### Regular expressions
432
433Regular expressions (known as regex or regexp) are patterns used to match character combinations in strings.
434JavaScript provides a regular expression implementation through the `RegExp` object.
435
436### Repository
437
438In a version control system, a repository (or repo for short) is a data structure that stores metadata for a set of files (i.e. a project).
439
440### Responsive web design
441
442Responsive web design is a web development concept aiming to provide optimal behavior and performance of websites on all web-enabled devices.
443Responsive web design is usually coupled with a mobile-first approach.
444
445### Scope
446
447Each function has its own scope, and any variable declared within that function is only accessible from that function and any nested functions.
448
449### Selector
450
451A CSS selector is a pattern that is used to select and/or style one or more elements in a document, based on certain rules.
452The order in which CSS selectors apply styles to elements is based on the rules of CSS specificity.
453
454### SEO
455
456SEO stands for Search Engine Optimization and refers to the process of improving a website's search rankings and visibility.
457
458### Serialization
459
460Serialization is the process of converting an object or data structure into a format suitable for transfer over a network and/or storage.
461A common type of serialization in JavaScript is the conversion of an object into a JSON string.
462
463### Shadow DOM
464
465Shadow DOM allows you to attach hidden DOM trees to elements in the normal DOM tree, which are included in the document rendering, but excluded from the main document DOM tree.
466A shadow DOM tree will start with a shadow root, to which you can attach any elements you want, just like in a regular DOM.
467Examples of shadow DOM uses are the `<video>`/`<audio>` elements and the simple `<input type="range">` element.
468
469### SQL injection
470
471SQL injection is a code injection technique, used to attack data-driven applications.
472SQL injections get their name from the SQL language and mainly target data stored in relational databases.
473
474### SQL
475
476SQL stands for Structured Query Language and is a language used to create, update, retrieve and calculate data in table-based databases.
477SQL databases use a relational database model and are particularly useful in handlind structured data with relations between different entities.
478
479### SSL
480
481Secure Sockets Layer, commonly known as SSL or TLS, is a set of protocols and standards for transferring private data across the Internet.
482SSL uses a cryptographic system that uses two keys to encrypt data.
483
484### Stream
485
486A stream is a sequence of data made available over time, often due to network transmission or storage access times.
487
488### Strict mode
489
490JavaScript's strict mode is a JavaScript feature that allows developers to use a more restrictive variant of JavaScript and it can be enabled by adding `'use strict';` at the very top of their code.
491Strict mode elimiated some silent errors, might improve performance and changes the behavior of `eval` and `arguments` among other things.
492
493### String
494
495Strings are one of the primitive data types in JavaScript.
496They are sequences of characters and are used to represent text.
497
498### SVG
499
500SVG stands for Scalable Vector Graphics and is a 2D vector image format based on an XML syntax.
501SVG images can scale infinitely and can utilize clipping, masking, filters, animations etc.
502
503### Template literals
504
505Template literals are strings that allow embedded expressions.
506They support multi-line strings, expression interpolation and nesting.
507
508### TypeScript
509
510TypeScript is a superset of JavaScript, adding optional static typing to the language.
511TypeScript compiles to plain JavaScript.
512
513### Unit testing
514
515Unit testing is a type of software testing, used to test individual units/components of a software.
516The purpose of unit tests are to validate that each individual unit/component performs as designed.
517
518### URI
519
520URI stands for Uniform Resource Identifier and is a text string referring to a resource.
521A common type of URI is a URL, which is used for the identification of resources on the Web.
522
523### URL
524
525URL stands for Uniform Resource Locator and is a text string specifying where a resource can be found on the Internet.
526In the HTTP protocol, URLs are the same as web addresses and hyperlinks.
527
528### UTF-8
529
530UTF-8 stands for UCS Transformation Format 8 and is a commonly used character encoding.
531UTF-8 is backwards compatible with ASCII and can represent any standard Unicode character.
532
533### Value vs reference
534
535When passing a variable by value, a copy of the variable is made, meaning that any changes made to the contents of the variable will not be reflected in the original variable.
536When passing a variable by reference, the memory address of the actual variable is passed to the function or variable, meaning that modifying the variable's contents will be reflected in the original variable.
537In JavaScript primitive data types are passed by value while objects are passed by reference.
538
539### Variable
540
541A variable is a storage location, associated with an identifier and containing a value.
542The value of a variable can be referred using the identifier and can be altered during execution.
543
544### Viewport
545
546A viewport is a polygonal (usually rectangular) area in computer graphics that is currently being viewed.
547In web development and design, it refers to the visible part of the document that is being viewed by the user in the browser window.
548
549### Vue
550
551Vue.js is a progressive frontend framework for building user interfaces.
552Vue.js separates view and state, utilizing a virtual DOM to update the user interface.
553
554### WebAssembly
555
556WebAssembly (WA) is a web standard that defines an assembly-like text format and corresponding binary format for executalbe code in web pages.
557WebAssembly is meant to complement JavaScript and improve its performance to match native code performance.
558
559### Web Components
560
561Web Components are a set of web platform APIs that allow you to create new custom, reusable, encapsulated HTML tags to use on web pages and apps.
562Building custom components using these standards means that you can use them across modern browsers regardless of any JavaScript library or framework.
563
564### WebGL
565
566WebGL stands for Web Graphics Library and is a JavaScript API that can be used for drawing interactive 2D and 3D graphics.
567WebGL is based on OpenGL and can be invoked within HTML `<canvas>` elements, which provide a rendering surface.
568
569### WebRTC
570
571WebRTC stands for Web Real-Time Communication and is an API that can be used for video-chat, voice-calling and P2P-file-sharing web apps.
572
573### WebSockets
574
575WebSockets is a protocol that allows for a persistent client-server TCP connection.
576The WebSocket protocol uses lower overheads, facilitating real-time data transfer between client and server.
577
578### XHTML
579
580XHTML stands for EXtensible HyperText Markup Language and is a language used to structure web pages.
581XHTML is a reformulation of the HTML document structure as an application of XML.
582
583### XML
584
585XML stands for eXtensible Markup Language and is a generic markup language specified by the W3C.
586XML documents are plaintext documents structured with user-defined tags, surrounded by `<>` and optionally extended with attributes.
587
588### Yarn
589
590Yarn is a package manager made by Facebook.
591It can be used as an alternative to the npm package manager and is compatible with the public NPM registry.