absolute path An absolute path is a relative URL that starts with a slash. The slash indicates that the relative URL should ignore the path component of the base URL and just use the given path instead. For instance, if the base URL is www.npshbook.com/example/example.html, an absolute path of /test.html indicates the URL www.npshbook.com/test.html. See also URL, fully qualified URL, base URL, relative URL.
absolute URL See fully qualified URL.
accessor In object-oriented programming, an accessor is a method that accesses an object’s internal properties. In object-oriented programming, it is usually recommended that code outside of the object’s own code should not directly access an object’s internal properties but use methods (called accessors) to retrieve the data. This allows object programmers to modify the way that their object’s internal properties are stored in future versions of the object without adversely affecting other code. See also mutator.
anchor In a URL, the anchor is a piece of extra data that is passed to the web page through the URL. It is located at the end of the URL, even after the query string if there is one. The anchor starts with a hash symbol (#), and everything after the hash symbol is part of the anchor. Hashes were originally intended to reference a section within a page to allow browsers not just to open up to a specific page but also to automatically scroll to a specific section within the page indicated by the hash and marked in the HTML with <a name="hashname"></a>. Now it is also used as a generic means of passing in data, much like the query string. In JavaScript, the anchor is retrieved through window.location.hash. See also URL.
anonymous function An anonymous function is a function that is not given a name but is just used as a parameter in a higher-order function. See also function, higher-order function.
API See Application Programming Interface.
API Key An API key is a piece of data (usually a single string) which contains authentication information for an application to connect to an API.
application framework See framework.
application layer The application layer is the seventh layer of a networking system according to the OSI model. The application layer is defined by each individual application such as email, web browsing, or file transfer. The application layer is for the main purpose of the communication, with the other layers mostly just supporting this layer. See also OSI model.
Application programming interface An application programming interface (API) is a set of records, objects, functions, and classes which define the way that a programmer should interact with an existing system. An API is primarily a set of documentation of existing or new functionality and how a programmer can gain access to it. See also documentation.
argument See parameter.
arithmetic and logic unit The arithmetic and logic unit is the part of the Central Processing Unit that performs math and logic functions. See also Central Processing Unit.
array An array is a sequence of data values or records, usually all of similar types of data. Each element of an array is referenced by its position in the array, called the index, with zero referring to the first element. See also data format, zero-based indexing.
arrow function An arrow function is a shorthand way of defining functions without using the function keyword. Arrow functions are often used when generating new functions inside other functions or when passing functions as parameters. Arrow functions do not make use of the this object.
ALU See arithmetic and logic unit.
ASCII ASCII (the American Standard Code for Information Interchange) is a way of representing letters, digits, punctuation, and processing codes using numbers. Because computers only process numbers, ASCII allows a number to represent a letter or other mark on the screen. In ASCII, each letter is represented by exactly one byte. While ASCII has been largely superseded by UTF-8, UTF-8 is, for the most part, backward compatible with ASCII. To the extent that it is covered, ASCII is covered in this book because it is by far the simpler of the two systems, and ASCII is almost entirely compatible with UTF-8. See also data format, Unicode, and UTF-8.
assignment statement An assignment statement is a JavaScript statement that is specified by an equal sign (=). An assignment statement has an expression that yields a value on the right-hand side of the equal sign and a location to store the value on the left-hand side of the equal sign. An example assignment statement is myvar = myothervar * 2; See also expression, syntax, right-hand side, left-hand side.
associative array An associative array is a data structure which has keys (usually strings) where each key contains a corresponding value. Associative arrays do not usually place restrictions on the contents of keys or values. All JavaScript objects can function as associative arrays. When doing so, the keys become JavaScript properties.
attribute (HTML) In HTML and XML, an attribute is a setting used to modify or add additional information to a tag. While attributes have many purposes, one of the most common reasons for adding attributes is to add a class or id attribute that can be used for specialized styling using CSS. In the following markup, the <p> tag has the class attribute set to important: <p class="important">Important text here</p> See also HyperText Markup Language, Extensible Markup Language, tag.
attribute (object) In object-oriented programming, an attribute is a piece of data tied to an object. For instance, if an object represents a car, that object might have attributes for where it is located on the map, how much gas it has left, and what direction it is going.
back end The back end of a system is the code that is running on the remote server. This is usually responsible for the ultimate storage and processing of data. See also front end.
background (CSS) The background of an HTML element is the area painted behind the content, padding, and border of the element.
background (back-end programming) In back-end programming, something is running in the “background” if it is running in a separate process or thread other than the one that is processing requests.
base case In recursive programming, the base case is the condition that stops the recursion and returns a simple answer. Recursive functions are usually set up to reduce the problem to a simpler and simpler problem until an answer can be provided directly. This place/condition where an answer can be provided directly is the base case. Without a base case, a recursive function would never be able to stop and would generate an infinite loop. See also recursive function, inductive case, infinite loop.
base URL The base URL is the starting point for relative URLs. The base URL is usually set to the URL of the current document being viewed, but in HTML this can be adjusted using the <base> tag. See also URL, fully qualified URL, relative URL.
BBS See bulletin-board system.
binary The binary numbering system is a system that only uses 1s and 0s. The first few numbers of binary (starting with zero) are 0 (zero), 1 (one), 10 (two), 11 (three), and 100 (four). See also decimal, octal, hexadecimal.
binary digit See bit.
binary file A binary file, as opposed to a text document, is a file which is not readable in a text editor but requires a more specialized program in order to read and manipulate the file. See also text document.
bit A bit is a binary digit—either a 1 or a 0. In the binary number system, 1 and 0 are the only digits. Computers are able to work more easily with binary digits because they can be implemented using the presence or absence of electrical current. See also byte, binary.
block A block is a grouped sequence of statements. In JavaScript, blocks are indicated with opening and closing braces ({ and }). Blocks are used to designate the body of a function, a branch of an if statement, or the body of a loop. See also control structure, function.
boolean A boolean value is a true/false value. It is essentially a bit that is treated such that the 1 is true and the 0 is false.
border (CSS) The border of an element is the area surrounding the main content and the padding.
bug A bug is an error in the program.
built-in function A built-in function is a function that is a part of the programming system and doesn’t need to be added by the programmer. A common built-in function used in this book is the JavaScript alert function, which displays messages to the user. See also function.
bulletin-board system A bulletin-board system was a popular method of computer communication in the days before the Internet. Basically, a computer would call a main computer over the phone lines, and the user would directly interact with the main computer on the other side. The user could leave messages and files for other users to pick up when they dialed in.
byte A byte is a sequence of eight bits and therefore has the ability to hold a number between 0 and 255. While individual bytes are rarely used in computer programs anymore, most quantities on computers are given in terms of bytes, such as the size of computer memory chips and hard drives. See also bit, binary.
Cascading style sheet Cascading style sheet is a text file format which specifies how HTML (or even XML) should be displayed to a user. It uses property lists to define what style should be used to lay out a block of text, and then it uses selectors to specify which tags go with which property lists.
CDN See content delivery network.
Central Processing Unit The Central Processing Unit (CPU) is the core of a computer which actually performs all of the data processing.
chip See integrated circuit.
class In object-oriented programming, a class is very similar to a type and is often used interchangeably. Types usually refer to single values, while classes refer to whole objects. Types are typically predefined by the programming language, and classes are generally defined by the programmer (with the exception of a few built-in classes). A class describes what properties are available on the instances of the class and what methods can be called on them. In JavaScript, objects don’t really have classes, but they do have constructors, which serve a similar purpose of defining the attributes and valid functions of an object. See also constructor, instance, object.
CLI See Command-Line Interface.
client A client is a computer or software program which accesses the services of another computer across the network, called the server. See also server.
client-side See front end. See also client.
command-line interface A command-line interface (CLI) is a user interface that allows users to interact with the computer by directly typing commands and getting textual output on the screen. Most command-line interfaces have at least some amount of programmability, allowing users an almost unlimited flexibility in running system programs. See also graphical user interface.
command prompt In a command-line interface, the command prompt is the text that sits to the left of the blinking cursor. What the prompt actually says varies based on your computer’s settings, but usually it has things like the name of the current directory, the name of the computer, the name of the current user, and then special character that indicates that you should start typing (typically either #, $, or >). See also command-line interface.
comment In computer programming, a comment is a section of text within the program that is used entirely for information for another human being reading the program. A comment is ignored by the programming language itself. For instance, if you had a piece of code that is complicated, you might include a comment to tell other programs (or yourself at a later date) why the code is so complicated and what you are trying to accomplish.
compression Compression is a process which reduces the size of a value (usually a string), usually by removing redundant information or finding simple patterns within the value.
computer A computer is a piece of hardware that uses programs called software to process data. It is called a computer because its operation primarily consists of computation. See also general-purpose computer, special-purpose computer.
concatenation Concatenation means combining by appending to the end and usually refers to sticking two strings together. For example, concatenating "hello" and "world" would get you "helloworld".
conditional expression A conditional expression is an expression which yields a true or false value. Conditional expressions are often used in control structures to determine which branch of code to follow or to serve as a control for a loop. See also expression.
console A console is a program that allows direct interaction with the programming environment. A console allows you to directly enter statements, and the console will evaluate and execute the statements immediately, yielding back the return value for you on the screen.
constructor In object-oriented programming, a constructor is a function that builds a new object instance of a specific class. In JavaScript, since there are no classes, the constructor itself fills the role of the class by setting up the properties and functions that a variable should have. See also instance, object, class, object-oriented programming.
container A container is a special type of virtual computer that can run under a standard operating system.
content When thinking about a document, the content usually refers to the actual data that a person sees, as opposed to how it is displayed. For instance, the content would include the text on a page, but would not include the font that the text is in, the line spacing, or any background images. See also presentation.
content delivery network A content delivery network (CDN) is a service which provides high-speed serving of non-changing (static) files.
content type A content type (also called a MIME type) is the format that a given piece of data is in. It is like a filename extension, but it is used for any stream of data, not just files. Content types are often used for data streams with multiple different types of data embedded in them, such as emails that contain attachments. Content types are specified with a general type and a more specific subtype, such as image/png, which means that it is an image (general type) and is specifically formatted as PNG image (the subtype). Webpages are of type text/html.
control structure A control structure is a statement or combination of statements that affect the sequencing of program statements. Control structures include function calls (which transfer the control sequence to the function), return statements (which transfer the control sequence back to the calling function), looping operations such as while and for (which repeat a given set of statements until a condition is reached), and branching operations such as if (which choose which path to operate based on a condition). There are other control structures, as well, which have more complicated functionality. See also flow control statement, loop, function, syntax.
control unit The control unit is the part of the Central Processing Unit that interprets instructions and directs the other parts of the CPU. See also Central Processing Unit.
CPU See Central Processing Unit.
CSS See Cascading style sheets.
currying Currying refers to the process of generating a function by specifying one or more parameters of another function. See also higher-order function.
data bus The data bus is a piece of hardware that manages communication between system components. For example, a data bus connects the Central Processing Unit to the computer memory. See also Central Processing Unit, memory.
data format A data format is a way to structure data so that other computer programs can read it. Since data is only a sequence of numbers, a data format defines the meanings of those numbers so that they can be used to convey information. See also file format.
data link layer The data link layer is the second layer of a networking system according to the OSI model. The data link layer deals with how the data on the physical layer will be divided and interpreted. It usually has a methodology for naming each local device (often called a MAC address). See also OSI model, MAC address.
data transformation A data transformation is a process of converting data from one data format to another. Oftentimes, there is more than one data format available for the same type of data. A data transformation converts between these different formats. Data transformations can also manipulate and summarize data into more usable forms. See also data format, file format.
data structure A data structure is a conceptual way of storing information. It is similar to a record, but a data structure can also refer to an entire set of different types of records that work together to accomplish a goal. See also record.
decimal Decimal is the numbering system that most people are used to using. It uses the digits 0–9 to make numbers. See also binary, octal, hexadecimal.
declaration A declaration is an instruction in a programming language that gives the language information about how to interpret other parts of a program. For instance, the declaration var x; is a declaration that tells the programming language that x will now refer to a variable. Other sorts of declarations can include what version of JavaScript is being used or, in HTML, which set of tags are being used. See also doctype declaration.
destructuring assignment A destructuring assignment is one where the left-hand side holds the variables in a structure which mimics their expected locations in a complex structure on the right-hand side. This allows for easier assignment of individual variables from complicated structures.
dictionary See associative array.
directory A directory (also called a folder) is a container for files or other directories usually used to keep files on a computer organized. In a URL, directories are indicated by slashes. For example, in the URL www.npshbook.com/example/test.html, the path is /example/test.html. This path refers to the test.html document in the example directory. See also URL, fully qualified URL.
DNS See domain name system.
doctype declaration: In HTML and XML, the doctype declaration specifies what type of document (i.e., what set of tags) is being processed. An HTML doctype declaration looks like this: <!DOCTYPE html> See also HyperText Markup Language, Extensible Markup Language.
Document Object Model The Document Object Model is an API (a set of objects, functions, and object classes) that describes how a programmer should interact with an HTML page. The Document Object Model was built to simplify and standardize this interaction not just within JavaScript but across multiple languages. That way, once you learn how to interact with web pages in JavaScript, your API knowledge can also be used in other languages that manipulate HTML. See also API, class.
documentation Documentation is any written documents or program comments that help navigate other programmers through a piece of code or a system. Documentation is important because most code will be handled by more than one person, so any information future programmers may need to update programs should be documented somewhere. Things that are especially important to document are the purpose of functions, the parameters used in a function, any global variables, and any surprise “gotcha” encountered while building the program or that may be encountered using the code or the program.
DOM: See Document Object Model.
Domain name system The domain name system (DNS) is a system that allows people to use friendlier names for computers on the Internet. Normally, each computer on the Internet is assigned an IP address, which is just a sequence of numbers. Not only are numbers hard to memorize, but these numbers can change if a computer is moved to another network. The domain name system allows user-friendly names such as www.npshbook.com to be used instead of the numeric IP address. The domain name system works behind the scenes to translate the hostname into an IP address for the computer to connect to.
domain-specific language A domain-specific language is a programming language that is geared toward a particular application (domain). Such programming languages often limit the programmer to a very few set of operations, and only some of them attempt to be Universal. A configuration file can be considered a domain-specific language of sorts. However, sometimes a domain-specific language is simply a general-purpose language with domain-specific features tacked on. See also general-purpose computer, special-purpose computer, Universal programming language.
DSL See domain-specific language.
element In HTML, an element consists of a start tag, an end tag, and all of the content and tags in-between them. See also tag, start tag, end tag, markup language, HyperText Markup Language.
encapsulation Encapsulation is a programming methodology in which access to read and manipulate data fields is only granted through functions or methods, never (or rarely) by direct access. The goal of encapsulation is to (a) make sure that fields are synchronized with each other, (b) make sure that all business and domain rules are appropriately followed concerning the data, and (c) make sure that the interface (the functions or methods) does not have to change even when the underlying data fields may change. For instance, a bank account might be encapsulated by giving the programmer no direct access to the account balance but giving methods to check the balance, deposit money, and withdraw money. In this way, it can ensure that if the programmer calls the functions to withdraw money, for example, all overdraft rules are appropriately applied rather than relying on the programmer to always remember to apply them. This also allows the implementation of these functions to change without drastically impacting other parts of the program.
encryption Encryption is a process that allows two parties to communicate without a third party listening in. It can also refer to a method of digitally signing a message to prove the identity of the sender.
end tag In HTML, an end tag marks the end of a block of content that is used for a specific purpose. An end tag looks just like a start tag but begins with a slash. So, if the start tag was <p>, then the end tag will be </p>. See also tag, start tag, markup language, HyperText Markup Language.
endpoint An endpoint is a destination URL for a specific API action or service. More generally, it refers to any specific location for a remote service.
entity In HTML and XML, an entity is a named character, symbol, or sequence of characters. Entities are specified by starting with an ampersand (&) and ending with a semicolon (;). For instance, © is an entity that refers to the copyright symbol.
entity body For HTTP PUT and POST methods, the entity body is the main data stream which is sent to the service which passed separately from the URL. The format of the entity body should be noted in the Content-Type header of the request.
Ethernet Ethernet is the most prominent means of physically connecting two devices on a local area network. See also data link layer, network, local area network.
expression An expression is a combination of variables, literals, operators, and functions that yield a value in a single statement. For example, 2 + 3 * 5 is an expression, as is (myvar * 2) - myothervar and myfunc(myvar + 1). Individual literals and variables also count as expressions, too. Anything that can exist on the right-hand side of an assignment statement is considered an expression. See also variable, literal, operator, function, assignment statement, right-hand side, syntax.
Extensible Markup Language The Extensible Markup Language (usually referred to as XML) is a text-based markup language that is very similar to HTML with the primary difference being that there is not a predefined set of tags to use. Programs utilizing XML get to make up their own tags to match the type of data they are trying to convey. XML has the benefit of being more flexible than HTML, at a cost of needing different programs to be customized to understand each others’ sets of tags. Many file formats today are simply predefined sets of XML tags. XML has stricter rules than standard HTML as far as how tags are formed, which makes it easier and faster to process. For example, there are cases where HTML allows start tags without corresponding end tags, while XML always requires end tags. HTML written according to these standards is sometimes called XHTML. All HTML in this book is also XHTML. See also markup language, text document, HyperText Markup Language.
extension See filename extension.
file format A file format is a way of structuring data on-disk so that the data can be read back by a computer program. A file format defines the types of data that can be stored within a file and how it is structured so that it can be read back. Since a file is only a sequence of numbers, there is no way to tell what the numbers are supposed to mean apart from the file format, which tells the program (actually, the programmer) how the sequence of numbers should be interpreted. See also protocol, data format.
filename extension A filename extension is a short code placed at the end of a filename which tells the computer what format the given file is in and, in some cases, what program should be used to open the file. The filename extension is separated from the main filename by a period. For instance, the filename mydocument.rtf has a filename extension of rtf, which means that the file is in Rich Text Format. Other common filename extensions include docx for word processing documents, jpg or png for image files, and html for web pages. See also content type.
firewall A firewall is a device or a program that restricts access to network resources, either on a single computer or across a network of computers. The firewall is meant to separate “outside” from “inside” communication, so as to limit what resources an outside network can access. Firewalls provide an additional layer of safety and security to computers on the “inside” of the firewall.
fixed-point number A fixed-point number is a computer-stored decimal number. It is called a “fixed point” because of the way it stores the number—it has a fixed number of positions to the right and left of the decimal that it can store. This makes the range of numbers it can cover smaller than that of floating-point numbers but makes the calculations more exact for the range that it covers. Fixed-point numbers are often used to store money amounts for that reason. See also floating-point number.
flash memory Modern computers phased out Read-Only Memory (ROM) for flash memory. Flash memory is like ROM in that it is not erased when the computer turns off but like RAM in that it can be altered. Flash memory is often used for computer bootup instructions as well as USB-based thumb drives. See also Random-Access Memory, Read-Only Memory, Universal Serial Bus.
floating-point number A floating-point number is a computer-stored decimal number. It is called a “floating point” because of the way it stores the number—the digits of the number are stored separately from the location of the decimal point. This allows it to store numbers that are very large or very small but sacrifices some amount of precision. See also fixed-point number.
flow control statement See control structure.
folder See directory.
for loop A for loop is a type of loop that includes some amount of loop initialization and control management. In JavaScript, it takes the form for(initialization ; loop condition ; loop control ) { loop body }.
It is basically a while loop that gives a specific area for loop control statements. An example for loop should illustrate the point for(var i = 0; i < 10; i = i + 1) { alert(i); }. This code will display each number from one through nine. The initialization creates the control variable and sets the value. The loop condition checks to see if the value is less than ten before executing the code. Finally, the loop control increases the control variable to go to the next number. You can put any statements you want for the initialization, condition, and control statements, but the ones in the example are fairly typical. See also loop, loop condition, loop body, loop control variable.
framework A framework is a set of tools (functions, objects, classes, etc.) which make programming certain types of systems more easily or enables more powerful features for a certain type of programming.
front end The front end of a system is the part that the user interacts with directly. On the Web, the front end is usually written in a combination of HTML, CSS, and JavaScript.
fully qualified URL A fully qualified URL (also called an absolute URL) is a URL that contains all of the information needed to access a remote document or service. As opposed to absolute URLs and relative URLs, fully qualified URLs rely on no contextual information whatsoever in order to connect. A fully qualified URL usually includes the protocol, the server, and the document path. For example, www.npshbook.com/example/example.html uses HTTP as the protocol, connects to the server www.npshbook.com, and accesses the document at the path /example/example.html. When people discuss URLs, they are usually talking about fully qualified URLs. See also URL, relative URL, network path.
function A function is a sequence of steps that a computer can perform that is encapsulated as a single unit. Functions usually consist of a list of parameters, which serve as input to the function, a sequence of instructions, and a return value, which is usually where the result of the function is given. Functions are used for several purposes, including specifying a piece of code that can be run multiple times from different parts of a program and separating a program out into logically distinct components. See also parameter, return value.
function scope Function scope is the scope created by a function definition. Within a function, all variables declared using the var keyword get put in the function’s scope as well as all of the function’s parameters. These variables cannot be accessed by name anywhere outside of the function body. For more advanced programmers, if a function is declared within another function, it can access all of the variables in the enclosing function. Function scopes are actually created when the function starts executing. Therefore, if a function calls itself, each execution of the function gets its own unique copy of the scope. This will cause a separate copy of each variable to exist for each active function. See also function, variable, variable scope, recursive function.
general-purpose computer A general-purpose computer is a computer that can be loaded with software that can perform any possible calculation (within practical limits). See also special-purpose computer, Universal programming language.
global scope The global scope is a scope that is always visible to every function. See also variable scope, global variable.
global variable A global variable is a variable that is defined in the global scope and thus visible within every function, unless that function has a local variable of the same name. See also variable scope, global scope, variable.
graphical user interface A graphical user interface (GUI, pronounced like “gooey”) is the typical type of interface we see on modern computers—heavy uses of icons, media, windows, and screen management, with interactions taking place primarily through an interactive device like a mouse. See also command-line interface.
groupware Groupware is a set of software applications that allow a user to interact with a group. Groupware usually includes scheduling and messaging applications that work together.
GUI See graphical user interface.
hashtable See associative array.
hexadecimal Hexadecimal is a numbering system that consists of the digits 0–9 as well as the letters a–f for an expanded list of 16 total digits. Hexadecimal is often used in computer programming because every two hexadecimal numbers represents a single byte. See also decimal, binary, octal, byte.
higher-order function A higher-order function is a function that either takes a function as a parameter or generates and returns new functions as a result. Higher-order functions are often difficult to grasp but, once understood, can greatly simplify many programming tasks.
hostname The hostname is the name of a computer or group of computers on the Internet. For instance, in the URL http://www.npshbook.com/, http is the protocol, www.npshbook.com is the hostname, and / is the path. This means that the URL will transmit to the computer or group of computers named by www.npshbook.com using the HTTP protocol and ask for the document /.
HTML See HyperText Markup Language.
HTTP See HyperText Transfer Protocol.
HTTP method See HTTP verb.
HTTP verb The HTTP protocol has several commands, called verbs, that it can receive. The two main verbs are GET, which is usually used to retrieve documents, and POST, which is usually used to transmit a form to the server.
hyperlink A hyperlink is a short piece of text in a digital document, which, when clicked, takes the viewer to another, related document.
HyperText Markup Language HyperText Markup Language (usually known simply as HTML) is a specialized markup language used for displaying documents on the Web. It uses tags to mark different pieces of content for different purposes. See also markup language, tag, text document.
HyperText Transfer Protocol The HyperText Transfer Protocol (HTTP) is the application layer protocol used on the Internet for transferring web content (web pages, images, etc.). When the data transfer is encrypted using SSL or TLS, the protocol is referred to as HTTPS. See application layer, Transport Layer Security.
identifier An identifier is a programmer-chosen name for a value. Most identifiers in programming languages refer to variable names, function names, or property names. Identifiers differ from keywords and operators, which are fixed, prespecified words that have a specific meaning in a language. Programming languages have rules for what makes a valid identifier, but usually any group of characters without spaces or special characters that start with a letter can be used an identifier. See also variable, operator, keyword, syntax.
IMAP IMAP (the Internet Message Access Protocol) is one of the application layer protocols used to retrieve email from an email server. See also application layer, SMTP, POP.
index An index is a number used in arrays and character strings to specify which item of the array or string you want to access. See also array, string, zero-based indexing.
inductive case In recursive programming, the programmer usually tries to redefine the problem into simpler and simpler problems with the same form as the original. For instance, in the factorial function, the factorial is represented in terms of the factorial of smaller numbers. The conditions that cause a recursive program to call itself with a simplified version of the problem are called the inductive case. See also recursive function, base case.
infinite loop An infinite loop is a loop in which the loop condition is improperly written, such that the loop body never stops executing. See also loop, loop condition, loop body.
information architecture For websites, information architecture refers to how web pages are organized and how users can navigate through the website. For computer programs, information architecture refers to how data is divided into data structures such as objects and arrays.
inheritance See subclass.
initialization Initialization is a term that refers to the beginning steps of a loop, program, or function, in which the programmer sets initial values to variables. JavaScript does not require that initialization happen at the beginning of a program or function, but it is usually good programming practice to do so. See also loop initialization.
input In computer hardware, input is anything that comes into a program from outside of the computer. Keyboards, mice, and hard drives are all examples of input systems. In computer programming, input can refer to anything that comes into a section of a program, even if it does not come from outside the computer. For instance, the input of a function can refer to external input (such as keyboards) as well as the function’s parameters and global variables. See also input/output system, output.
input/output system An input/output system is a set of hardware specifications for allowing devices to be added to computers. One popular input/output system is the Universal Serial Bus (USB). See also USB.
instance In object-oriented programming, an instance is an object of a particular class. For example, I might have a class of Car that describes the basic potential features of a car and then thousands of Car object instances that are used to model traffic. Each instance of the Car class has the properties and methods that the Car class describes. JavaScript does not have classes, but a similar concept is built through constructors. See also object, class, constructor.
instruction pointer In machine language, the instruction pointer contains the memory address of the next instruction to fetch and execute. See also machine language, memory address.
integer An integer is a counting number—a number with no decimal points.
integrated circuit An integrated circuit is a piece of silicon with numerous transistors and other miniaturized semiconductors packed into a small area. Integrated circuits may be as simple as a few transistors wired together to make a timer or a few billion transistors wired together to make a modern computer microprocessor.
interface In object-oriented programming, an interface (also called a protocol) is a list of related methods that an object or class may implement that contribute toward a similar function in non-similar objects. For instance, beds and cars have very little in common, but they might both have a function called getLocation() and setLocation(). If they both implemented equivalently named functions to accomplish similar goals, then you could regard that as an interface. Defining interfaces allows people to write general code that allows the code to be used in a variety of circumstances with different kinds of objects so long as the objects each implement the same interface.
Internet The Internet is the worldwide conglomeration of networks operating under a standard set of protocols for locating and communicating with each other. See also network.
Internet Protocol The Internet Protocol (IP) is the network layer protocol used on the Internet for addressing devices and routing data to them. See also network layer, Internet, TCP/IP, IP address.
IP See Internet Protocol.
IP address An IP address is how a computer is identified on the Internet. The Internet Protocol uses the IP address to ensure that data arrives at the proper destination. See also Internet Protocol, network layer.
JavaScript JavaScript is a programming language that is widely used today to make web pages more interactive.
JavaScript library A JavaScript library is a prebuilt group of functions that can be loaded into your application. See also framework.
JavaScript console See console
keyword A keyword is a word that looks like an identifier but has a specific meaning in the given programming language. See also identifier, syntax.
L-value See left-hand side.
lambda function See arrow function.
LAN See local area network.
left-hand side In an assignment statement, the left-hand side refers to the code on the left-hand side of the equal sign (=). The goal of the left-hand side is to yield a storage location that can hold the value given in the right-hand side. Therefore, the left-hand side is interpreted differently than the right-hand side. On the right-hand side, myarray[0] refers to the value that is held in the first element of myarray. On the left-hand side, myarray[0] refers to the storage location that is the first element of myarray. Storage locations specified by the left-hand side of assignment statements are often called L-values. See also assignment statement, right-hand side.
lexical closure Lexical closure is the idea that functions that are defined inside of other functions have full access to the variables defined in their containing scope. Even if the containing function returns, if a function was defined inside that scope and returned from that function, the scope remains “alive” whenever the returned function is called.
library A library is a set of prebuilt functions, objects, and/or other programming tools that assists a programmer to accomplish specific tasks. For instance, many websites offer JavaScript libraries that provide functions that a programmer can call to retrieve data from their website.
link See hyperlink.
literal A literal refers to a value that is entered directly in a programming language as opposed to one that is given as input or calculated from other values. For instance, in the statement var myvar = 0;, the 0 in the program refers to the number 0 itself. Any value that is written directly into a program is considered a literal.
local area network A local area network (LAN) is a network of computers within a modest physical proximity that are all managed under a single administration. Most home and office networks are local area networks. See also wide area network.
local variable A local variable is a variable with a non-global scope. In JavaScript, local variables have function scope. See also variable, global scope, function scope.
loop A loop is a sequence of statements that are repeated. Loops generally consists of two logical components—the loop condition and the loop body. The loop body is the sequence of statements to be executed repeatedly, and the loop condition is a conditional expression that controls whether or not the loop continues repeating or is finished. See also conditional expression, loop condition, loop body, loop control variable, for loop, while loop.
loop body In a loop, the loop body is a sequence of statements that gets executed over and over again. In most types of loops, the sequence of statements executes until the loop condition evaluates to false. See also loop, loop condition.
loop condition The loop condition is a conditional expression that controls whether or not the loop body is executed. See also conditional expression, loop, loop body.
loop control variable A loop control variable is a variable that is used to gauge the progress of a loop and determine whether or not it is finished. A loop does not have to have a single loop control variable—sometimes a loop condition is controlled by a variety of conditions of several variables. However, most loops make use of a single variable to determine whether or not it should keep executing. Therefore, in order to avoid an infinite loop, it is important to make sure your loop control variable is modified properly in the loop body (or in the loop control in a for loop). See also loop, loop condition, loop body, for loop.
loop initialization Loop initialization is a term that refers to setting up the variables in order to execute a loop. In some forms of loops (such as the while loop), loop initialization is done manually, while in other loops (such as the for loop), at least part of the initialization is part of the loop syntax itself. See also loop, while loop, for loop.
MAC address The MAC (media access control) address is how a computer is identified on a local network (at the data link layer level). This is different than the IP address, which is how a computer is identified across a larger network such as the Internet. Computers on the Internet typically have both a MAC address and an IP address. The MAC address allows a network card to quickly identify which packets of data belong to that network card without the complexities of understanding the Internet Protocol. See also IP address, Internet protocol, data link layer, packet.
machine language A machine language is the set of instructions that a computer is able to process natively. The three most common machine languages are the x86 platform (used by most desktop computers), the PowerPC platform (used by many gaming systems), and the ARM platform (used by many smartphones). Most programmers do not use machine language but, instead, use other programming languages that make the task of programming easier. See also programming language.
map See associative array. Additionally, a map can also refer to a function which does a transformation of values in an array using a specified transformation function.
margin (CSS) The margin of an element is the space outside of the border. The margin is considered the minimum amount of space between this element and the next, which means that margins are not added together, but the maximum of two touching margins is used for the space between two elements.
markup language A markup language is a text document that has certain codes written into it that tell a person or a computer program how to interpret each piece of text. Common markup languages are XML and HTML. See also HyperText Markup Language, Extensible Markup Language.
memory The memory of a computer refers to the data that is held in a computer. The memory is a sequence of storage locations, each of which holds eight bits (one byte) of data. It usually refers to Random-Access Memory, which goes away when the computer is switched off. See also Random-Access Memory, bit byte, memory address.
memory address The computer memory is simply a very large sequence of bytes. Each byte is given a number that refers to its position in the sequence of bytes. This number is known as a memory address. See also memory, byte.
message Another term used for method. It has a slightly different technical meaning, but they are usually used interchangeably.
method A method is a function that is attached to an object. In JavaScript, this is done by setting a property of an object to a function. When a method is called, the object that the function is attached to is passed as an implicit parameter to the function. In JavaScript, this is done by setting the special variable this to the object. See also function, object. A method can also refer to an HTTP method or verb. See HTTP verb for this usage.
microchip See integrated circuit.
MIME type See content type.
modem A modem (from the words “modulator” and “demodulator”) is a device that converts a digital signal to an analog signal for transmission over phone lines.
modularization Modularization refers to a practice in programming of separating out a program into simpler pieces, called modules. This helps to better organize the program, to reduce the amount of local complexity (since the units are thought of in more holistic and unified ways), to reduce the amount of global complexity (since the interaction points between the modules are better documented and understood), and to make the program more understandable (because you can reasonably understand the program at both a local level and a global level). Without modularization, oftentimes programs would have to be understood simultaneously at a broad and local level since there was nothing that partitioned the system into parts.
module In JavaScript, a module is a largely self-contained library of code which can be loaded upon request into a variable. It is a type of library that has special scoping rules that allow additional code isolation from the rest of the system. See also JavaScript library.
mutating function See mutator.
mutator In object-oriented programming, a mutator is a method that changes an object’s internal properties. In object-oriented programming, it is usually recommended that all changes to an object’s properties occur through mutators so that only the object is responsible for maintaining internal consistency. Otherwise, if an object needed two values to change together, and someone using the object only changed one of them, the object would be in an invalid state. Using mutators puts the burden of object consistency on the person who wrote the code for the object to begin with. See also object-oriented programming, accessor.
name clash A name clash is when a programmer accidentally uses the same name for two different things (usually variables). Depending on the programming language and the way it occurs, this either can prevent the code from running (because the language can’t distinguish between the two uses of the name) or causes data corruption (because two parts of the code are using the same location for different things). See also variable.
network A network is a group of computers that are connected together so that they can send data to each other. See also Ethernet, local area network.
network layer The network layer is the third layer of a networking system according to the OSI model. The network layer deals with moving data between different physical network segments. The most common network layer protocol is the Internet Protocol. See also OSI model, Internet Protocol.
network path A network path is like a fully qualified URL but without the protocol specified. It is also like a relative URL, but relative only to the protocol of the base URL. A network path is indicated by starting with two slashes (//). For instance, the URL www.npshbook.com/example/example.html has a network path of //npshbook.com/example/example.html. Network paths are often used when a document can be accessed by more than one protocol and you want all of the links using the same protocol. For instance, if a document can be accessed via either HTTP or HTTPS (using http: or https: as the protocol), using network paths for links will keep the session in the same protocol as was used to access the original document. See also URL, fully qualified URL, base URL, relative URL.
nil See null.
null Null (also called nil) is often used in programming languages to represent an empty value. In JavaScript, you can set values to null if you don’t know what the value is. It is similar to undefined, except undefined is usually assigned by the system itself when a variable has not been set to anything. In other words, undefined is used by the JavaScript language when it doesn’t know what the value should be, and null is used by programmers to specify that they don’t know what the value should be. null and undefined are equal when compared using == but not equal when compared using ===. Most programming languages don’t have separate values for undefined and null values. In other programming languages, null is defined as the number zero. See also undefined.
null-terminated string A null-terminated string is a way of implementing strings such that the last value is a sentinel (usually the null value) signaling the end of the string. JavaScript strings are not null-terminated (JavaScript stores the count of the characters instead), but null-terminated strings are seen on a number of programming languages. See also string, null, sentinel.
object An object is a data structure that can contain both regular data and functions. In JavaScript, although every value is technically an object, objects usually refer to custom-defined objects that contain multiple values.
object-oriented programming Object-oriented programming is a method of programming where data records and related functions (called methods) are encapsulated together into units called objects. See also class, subclass, interface, instance, object, accessor, mutator, constructor attribute, property.
octal Octal is a numbering system that only uses the digits 0–7. It is commonly used in computers since each octal digit represents exactly three bits. See also binary, decimal.
opcode The word opcode stands for “operation code.” In machine language, an opcode is part of a machine instruction. It is a number that refers to what process the CPU should perform with the instruction. The CPU uses the opcode to know what operation to perform. The opcode is combined with other operands to form a complete machine instruction.
operand An operand is a value that is operated on by an operator. In the expression 2 + 3, + is the operator, and 2 and 3 are operands. Operators are like parameters to built-in functions. See also expression, operator.
operator An operator is a symbol or keyword in a programming language that tells computes a value. For instance, + is an operator that adds two values, and == is an operator that compares two values and yields true or false based on whether they are equivalent. See also operand.
OSI model The OSI model is a way of thinking about the different needs of a communication system broken out into independent layers. The OSI model is what, for instance, allows wired and wireless computers to interoperate on the same network despite having very different ways of physically connecting to the network. The OSI model divides the needs of a network communication system into seven layers which can each act independently of the others. See also physical layer, data link layer, network layer, transport layer, session layer, presentation layer, application layer.
output In computer hardware, output is anything that goes from the computer to a device outside of the computer. Your monitor, speakers, and hard drive are all examples of output systems. In computer programming, output can refer to anything that is the result of a section of a program, especially its return value, and any global variables that it modified. See also input/output system, input, return value.
packet A packet is a piece of a communication sent as a unit across the network. When sending or receiving data, the operating system or network can decide to break up the transmission into pieces called packets and send each packet individually. The destination computer then reassembles the packets into their proper order before sending them on to the destination program.
padding (CSS) The padding of an element is the area just outside the content area but before the border.
parameter A parameter is a value that is given to a function for processing. In JavaScript, for instance, the function call alert("hello there"); has one parameter—the string "hello there". In JavaScript, each parameter is assigned to a local variable for the duration of the function.
parent directory On a computer, files are organized in a hierarchy of directories. If a file is in a given directory, the parent directory is the directory that the given directory is located in. For instance, if a file is in the directory /example1/example2/myfile.html, the directory that the file is in is example2, and the parent directory of example2 is example1. See also director.
parse Parsing is converting specially formatted text from a simple string to something easier to manipulate as data. For instance, the string "25" can be parsed into the number 25, and the string "2016-03-01" can be parsed into a date.
payload The payload of a request is the “main data” being transferred. In HTTP PUT and POST requests, the payload usually refers to the entity body. See also entity body.
peripheral A peripheral is an external device attached to the computer such as a mouse, keyboard, or monitor. Most peripherals today use USB to connect. See also Universal Serial Bus, input/output system.
physical layer The physical layer is the lowest layer of a networking system according to the OSI model. The physical layer deals with the physical wires between devices or, in the case of wireless communication, the necessary physical requirements of the space. See also OSI model.
pica In typography, a pica is a size that is of an inch. See also typography.
point In typography, a point is a size that is of an inch. See also typography.
POP POP (the Post Office Protocol) is one of the application layer protocols used to retrieve email from an email server. See also application layer, SMTP, IMAP.
presentation When thinking about a document, the presentation usually refers to the way that data is displayed on a page, not the content itself. The presentation refers to fonts, colors, borders, backgrounds, placements, spacing, and other visual effects that are not directly tied to the text or data being presented.
presentation layer The presentation layer is the sixth layer of a networking system according to the OSI model. The presentation layer allows for the adjustment of the message before being sent to the application. Two common uses of this are encryption and compression. The TLS protocol, for instance, is a presentation layer protocol for encryption used on many websites. However, oftentimes the presentation layer is bundled into the application layer. See also OSI model, application layer, TLS, SSL, encryption, compression.
program stack See stack.
programming language A programming language is a method of conveying instructions to a computer in a way that is easier for programmers to use than the machine’s native machine language but that is still precise enough to be translated into the computer’s own machine language. See also machine language.
property (CSS) A CSS property is a setting that can be changed, such as font-size or padding-left.
property (object) An object property is a value that is set on an object. The property name is the name that the value is referred by, and the property value is the actual value stored. For instance, if we had an object called myobj, then the statement myobj.myprop = "myval"; would set a property named myprop on the myobj object to the value "myval".
protocol (networking) A protocol is a system of conventions used to facilitate communication or usage. In ordinary life, a common protocol is shaking hands when greeting someone or saying “hello” and “goodbye” on the telephone. On computer systems, protocols allow components and software built by independent groups to work together by sharing the same conventions. For instance, there are a number of different web browsers available for browsing the Web, but they are all able to do so successfully because they all follow a standard protocol for exchanging information with the website.
protocol (object-oriented programming) See interface.
query string In a URL, a query string is a set of extra data that is passed to the web page through the URL. If a URL has a question mark within the URL, everything after the question mark is considered part of the query string. Query string data is usually expressed as key=val pairs separated by ampersands (&). In JavaScript, the query string can be accessed in JavaScript through window.location.search. See also URL.
RAM See Random-Access Memory.
Random-Access Memory Random-Access Memory (RAM) is the typical type of computer memory. It refers to memory that can be both read from and written to. The RAM of a computer is wiped when it is turned off or rebooted. See also memory, Read-Only Memory.
Read-Only Memory Read-Only Memory (ROM) is a special type of computer memory that is usually only available for reading. For instance, the instructions that help a computer boot up used to be held in ROM-based memory. Today, flash memory is usually used for this purpose. ROM, since it is read-only, is not wiped when the computer is turned off.
record A record is a set of named, related values that are stored together. For instance, a record about a person could have their name, age, and hair color. In JavaScript, records are created using objects. See also variable, object.
recursive function A recursive function is a function that calls itself. Recursive functions are used when the method to solve a problem involves figuring out the answer from a simplified set and then expanding that set. As an example, the factorial function takes a number and multiplies it by all numbers below it until it gets to 1. This means that factorial(5) could just be written as 5 * factorial(4), and factorial(4) can be written as 4*factorial(3). Each step of the factorial simply comes up with a factorial of a smaller number until it gets to 1. The 1 is called a base case, which means that it is answered directly instead of recursively. In the factorial function, the factorial is coded to simply return the answer 1 for the base case of 1. Recursive functions are possible because each time the function is called, it gets its own stack frame—its own set of parameters, local variables, and return location. This allows each invocation of the function to have its own working scratch pad of information which doesn’t interfere with the other invocations of the functions that are active at the time. See also stack, stack frame, base case, inductive case.
refactor In computer programming, refactoring refers to the process of rewriting how a computer program works, usually in order to make it more comprehensible, less error-prone, or more flexible for future expansion. Refactoring usually involves separating out different core components that had been previously linked together. For instance, when HTML was broken out into separate languages for content (HTML), presentation (CSS), and interaction (JavaScript), this was an instance of refactoring.
relative URL A relative URL is a partial URL that uses the current base URL as the starting point for the URL. In URLs, directories are separated by slashes (/), and the relative URL starts in the same directory as the base URL. For instance, if the base URL is www.npshbook.com/example/example.html, then a relative URL of test.html would refer to www.npshbook.com/example/test.html. A directory of .. refers to the parent directory so a relative URL of ../test.html would refer to www.npshbook.com/test.html. If a relative URL starts with a slash, it becomes an absolute path. See also URL, fully qualified URL, base URL, absolute path, directory.
request routing In an HTTP server, request routing refers to sending an HTTP request to the appropriate function based on the request properties such as the request path and the HTTP method.
reserved words In a programming language, a reserved word is a name that cannot be used as a variable name, usually because it already has special importance to the programming language. In JavaScript, for instance, if is a reserved word.
responsive (CSS) In HTML and CSS, a responsive page is a web page which looks good across a number of different screen sizes. This is often achieved by using special style sheets which enable/disable different elements based on screen size or change the page layout for certain sizes.
return value In a function, the return value is the final value yielded by the function. In JavaScript, the return value is specified in the function using the return keyword, which also returns control back to the code that called the function. The return value can be used as a value within an expression, assigned to a variable, or ignored. See also function, expression, variable.
right-hand side In an assignment statement, the right-hand side refers to the code on the right-hand side of the equal sign (=). The goal of the right-hand side is to yield a value that can be stored to the location specified in the left-hand side. See also assignment statement, left-hand side.
ROM See Read-Only Memory.
router A router is a device which determines which network a given packet of data should be sent to. On the Internet, routers work by looking at the destination IP address and deciding which network is most likely to have the destination IP address.
scale An application that scales is one whose performance improves by adding additional resources (such as additional computers). In an unscalable application, adding resources does not improve the speed or throughput of the system.
scope See variable scope.
Secure Sockets Layer See Transport Layer Security.
search parameters See query string.
sentinel A sentinel is a special value that tells a program that it has reached a special place in the data (such as the end). Oftentimes the null character (ASCII 0) will be used to mark the end of a sequence of letters. See also data format, ASCII.
serialization Serialization is the process of transforming an object in a programming language into a data stream that can be sent remotely or stored. Deserialization is the opposite process—converting a data stream into an object in a programming language.
server A server is a computer or a group of computers which provide a service to other computers on the network. Computers who connect to the server are usually called clients. See also client.
session layer The session layer is the fifth layer of a networking system according to the OSI model. The session layer deals with starting and stopping a conversation between computers. See also OSI model, Transmission Control Protocol.
SMTP SMTP (the Simple Mail Transfer Protocol) is the application layer protocol used to send email out on the Internet eventually winding up on the destination email server (it may have to be sent through more than one server to get there). This is a different protocol than the one used by a user to receive email from their email server, which is usually POP or IMAP. See also application layer, POP, IMAP.
special-purpose computer A special-purpose computer is a computer whose computational abilities are limited to specific types of computational operations and specific ways of combining them. See also general-purpose computer.
SSL The Secure Sockets Layer. See Transport Layer Security.
stack The stack is the part of computer memory that holds the call-specific information of all active functions. The stack usually holds things like parameters, local variables, and the point in the code to return to when the function is finished. Think of it as a scratch pad for active functions. It is called a “stack” because every time a function is called, the information for the new call (newly created local variables, the parameter list, and the location where we left off the last function) is placed “on top of the stack.” Then, when the function is finished, that information is pulled off of the top of the stack to let the previous function continue running. See also stack frame.
stack frame The stack holds information about all active function calls currently in progress. A stack frame is the information for a specific function call. The stack frame usually holds information like function parameters, the location in the code to return to when the function is finished, and the local variables being used by the current call of the current function. See also recursive function.
start tag In HTML, a start tag marks the beginning of a block of content that is used for a specific purpose. Start tags are wrapped in angled brackets so that they can be recognized by the computer as being a tag. For instance, a tag marking the start of a paragraph looks like <p>. See also tag, end tag, markup language, HyperText Markup Language.
string A string is a defined sequence of displayable characters. In JavaScript, strings are designated by enclosing them in double or single quotes (" or ’). Each character in a strings is usually encoded using either ASCII or a Unicode-based system such as UTF-8 or UTF-32. See also null-terminated string, Unicode, ASCII, UTF-8, UTF-32.
syntax In any file format or computer programming language, the syntax of the language refers to the pieces of the language that can be included and how they can be validly combined. For instance, in JavaScript, the syntax includes the different keywords (such as if, for, function, etc.), the different literals (such as numbers, strings, etc.), other parts of the language, and how they can be combined together to create a valid program. Syntax only refers to whether or not a computer can successfully understand the program. It does not refer to whether or not the computer successfully performs the function desired.
subclass In object-oriented programming, a subclass is a class whose default properties and methods are “inherited” from another class, known as the superclass. Inheritance allows specialized classes to be built quickly and easily from existing classes while allowing any functionality to be overridden as needed. See also class, object-oriented programming.
superclass See subclass.
tag In a markup language, a tag is a marker that indicates a specific usage for a piece of text. In HTML specifically, a tag is written using angled brackets with a start tag at the beginning of the content block and an end tag at the end of it. Tags indicate the start and end of pieces of content used for a specific purpose. For instance, the <h1> tag is used to mark level-1 headings, such as this: <h1>This is a Level 1 Heading</h1> See also markup language, HyperText Markup Language, start tag, end tag.
TCP See Transmission Control Protocol.
TCP/IP TCP/IP refers to the combined usage of the TCP and IP protocols as the foundation for communication on the Internet. See also Transmission Control Protocol, Internet Protocol.
text document A text document is a file that consists entirely of displayable characters, usually encoded in ASCII or UTF-8 (see Appendix D for more information on ASCII and UTF-8). Text documents can be edited using any standard text editor. However, text documents may also be specialized (such as HTML web pages) and have specific requirements for their format. In such cases, it is usually the user’s responsibility to make sure that the document follows the proper requirements. See also binary file.
TLS See Transport Layer Security.
transport layer The transport layer is the fourth layer of a networking system according to the OSI model. The transport layer deals with breaking up data into packets, making sure that each packet is delivered appropriately, and making sure they are assembled in the right order on the other side. See also OSI model, packet, Transmission Control Protocol.
Transport Layer Security Transport Layer Security (TLS) is the most common presentation layer encryption method on the Internet. It is the successor to the previous Secure Sockets Layer (SSL) protocol. See also presentation layer.
Transmission Control Protocol The Transmission Control Protocol (TCP) is the protocol used on the Internet for the transport layer and the session layer. It is in charge of starting and stopping transmissions as well as making sure data arrives intact on each side. See also transport layer, session layer, TCP/IP.
Turing-complete programming language See Universal programming language.
type A type describes the set of valid values and available operations of a variable. Types are usually predefined by the programming language, though there are exceptions. See also variable, class.
typography Typography is an aspect of visual design that focuses on the way that words are laid out on a page.
undefined A variable or property is undefined if no value has been set for it. It literally means “no definition.” See null for a fuller description.
Unicode Unicode is a system for representing all of the languages and writing of the world digitally. Unicode specifies over 100,000 characters/symbols. Unicode specifies a number for each character but does not specify how the computer represents that number. Other standards, such as UTF-8 and UTF-32, define how those numbers are represented on the computer. See also UTF-8, UTF-32, ASCII.
Uniform Resource Locator A Uniform Resource Locator (URL) is the standard method for identifying web content. For instance, www.npshbook.com/ is the URL for accessing this book’s website, and www.amazon.com/exec/obidos/ASIN/0975283863 is the URL for buying a previous book of mine, Engineering and the Ultimate. See also protocol, hostname, path, query string, anchor.
Universal Serial Bus Universal Serial Bus (USB) is a specification for an interface that allows many different types of hardware to be plugged into a computer and used with minimal setup. See also input/output system, peripheral.
Universal programming language A Universal programming language (also called a Turing-complete language) is a programming language that can represent the entire gamut of computable functions (within practical limits of memory and time). Universal languages are not Universal because they have an advanced computation set—in fact, you can make a Universal language just with basic arithmetic and comparison operators. Universal languages are universal because they contain sufficient control structures (looping, function calls, if statements, etc.) to build new computable functions out of any starting set of operators. Universal languages are all equivalent in the computations that they can perform, though they may not be equivalent in other ways, such as input and output mechanisms and ease-of-use for particular applications. See also domain-specific language, general-purpose computer, special-purpose computer, control structure.
URL See Uniform Resource Locator.
USB See Universal Serial Bus.
UTF-32 UTF-32 is another character encoding based on Unicode. This encoding uses four bytes per character.
UTF-8 UTF-8 is a popular character encoding based on Unicode. It is widely used because of its backward compatibility with ASCII. Because Unicode specifies over 100,000 characters, it takes more than 1 byte to record each character. However, ASCII only stores one byte per character. In order to combine these two standards, the first bit of the byte (which is unused in standard ASCII) is set to 1 if the character needs more than one byte to hold it. This makes all ASCII files work in UTF-8 settings, but it means that it is harder to find the nth character of a string because you have to check each letter to see how many bytes it takes up. See also data format, Unicode, ASCII, string.
variable A variable is a named location (named by an identifier) in a computer program that is used to store a value. In JavaScript, variables are created either by declaring them as parameters in a function or by using the var keyword. Variables, as their name indicates, can vary by being assigned different values throughout the program. See also syntax, identifier.
variable scope A variable’s scope refers to the places in a program that a particular variable can be accessed. Two common scopes in JavaScript are global scope and function scope. For instance, a variable in function scope cannot be directly accessed outside of the function itself. See also global scope, function scope.
verb See HTTP verb.
virtual private network A virtual private network (VPN) is a system that bridges together computers and networks across the Internet to act as if they were all on the local network. This is usually used for data security where the local area network allows for access to more secure resources than are available across the Internet. Therefore, it brings certain computers and networks into the local area network to share those resources.
von Neumann architecture The von Neumann architecture refers to the idea of putting both the program and the data it is operating on into the same memory. This allows for far more flexibility in the way that machines are built and used.
VPN See virtual private network.
WAN See wide area network.
whitespace Whitespace refers to any nonprinting character such as regular spaces, the end-of-line character, and tabs. In HTML and XML, all whitespace is treated together as if it were a single space. This is done because the writer of HTML does not know the screen size that the document will be displayed on and cannot rely on the spacing in the output matching the spacing in the document. Therefore, document authors are supposed to use tags and style sheets instead of whitespace to ensure proper spacing. See also text document, HyperText Markup Language, Extensible Markup Language.
wide area network A wide area network is a network that connects two local area networks that are geographically distant from each other. See also local area network.
while loop A while loop is a type of loop that takes the form while( loop condition ) { loop body }. The loop condition is evaluated before each iteration of the loop body. If the loop condition is true, it executes the loop body. If the loop condition is false, the loop body is skipped and the program goes to the next statement. The loop is evaluated over and over again until the loop condition is false. See also loop, loop condition, loop body.
widget A widget is a generic term for a somewhat self-contained user interface element. A text field is a widget. A drop-down list is a widget.
Wi-Fi Wi-Fi refers to the most prominent protocol used for attaching a device to a wireless network. It is similar to Ethernet, but using radio waves. See also Ethernet, network, local area network, data link layer.
XHTML See Extensible Markup Language.
XML See Extensible Markup Language.
zero-based indexing Most computer programming languages (including JavaScript) start their array indexes at zero. This means that the first value of an array has an index of zero. This also means that the last value in an array has an index of one less than the length. So, for an array with four items, the first index is zero (as always) and the last index is three. This method is called zero-based indexing. This is different than mathematics, which uses the number 1 to refer to the first element of a set of values. See also array, index.