Skip to content

Instantly share code, notes, and snippets.

@wbamberg
Created April 14, 2021 00:39
Show Gist options
  • Save wbamberg/3e6f1d6d995189596647a7342c3f0d9e to your computer and use it in GitHub Desktop.
Save wbamberg/3e6f1d6d995189596647a7342c3f0d9e to your computer and use it in GitHub Desktop.
This file is just a list of the textContent of all first paragraphs of pages in the JS docs that **do not** use `summary` or `seoSummary` to demarcate a custom summary.
The point is to give us an idea of the general length of summaries that are being generated for the JS docs.
*********************
Why a re-introduction? Because JavaScript is notorious for being misunderstood. It is often derided as being a toy, but beneath its layer of deceptive simplicity, powerful language features await. JavaScript is now used by an incredible number of high-profile applications, showing that deeper knowledge of this technology is an important skill for any web or mobile developer.
*********************
JavaScript® (often shortened to JS) is a lightweight, interpreted, object-oriented language with first-class functions, and is best known as the scripting language for Web pages, but it's used in many non-browser environments as well. It is a prototype-based, multi-paradigm scripting language that is dynamic, and supports object-oriented, imperative, and functional programming styles.
*********************
A closure is the combination of a function bundled together (enclosed) with references to its surrounding state (the lexical environment). In other words, a closure gives you access to an outer function’s scope from an inner function. In JavaScript, closures are created every time a function is created, at function creation time.
*********************
Programming languages all have built-in data structures, but these often differ from one language to another. This article attempts to list the built-in data structures available in JavaScript and what properties they have. These can be used to build other data structures. Wherever possible, comparisons with other languages are drawn.
*********************
Enumerable properties are those properties whose internal enumerable flag is set to true, which is the default for properties created via simple assignment or via a property initializer (properties defined via Object.defineProperty and such default enumerable to false). Enumerable properties show up in for...in loops unless the property's key is a Symbol. Ownership of properties is determined by whether the property belongs to the object directly and not to its prototype chain. Properties of an object can also be retrieved in total. There are a number of built-in means of detecting, iterating/enumerating, and retrieving object properties, with the chart showing below which are available. Some sample code follows which demonstrates how to obtain the missing categories.
*********************
There are four equality algorithms in ES2015:
*********************
JavaScript is an object-based language based on prototypes, rather than being class-based. Because of this different basis, it can be less apparent how JavaScript allows you to create hierarchies of objects and to have inheritance of properties and their values. This chapter attempts to clarify the situation.
*********************
This chapter describes JavaScript's expressions and operators,
including assignment, comparison, arithmetic, bitwise, logical, string, ternary and
more.
*********************
Functions are one of the fundamental building blocks in JavaScript. A function in JavaScript is similar to a procedure—a set of statements that performs a task or calculates a value, but for a procedure to qualify as a function, it should take some input and return an output where there is some obvious relationship between the input and the output. To use a function, you must define it somewhere in the scope from which you wish to call it.
*********************
This chapter discusses JavaScript's basic grammar, variable declarations, data types and literals.
*********************
The JavaScript Guide shows you how to use JavaScript and gives an overview of the language. If you need exhaustive information about a language feature, have a look at the JavaScript reference.
*********************
This chapter introduces collections of data which are ordered by an index value. This includes arrays and array-like constructs such as {{jsxref("Array")}} objects and {{jsxref("TypedArray")}} objects.
*********************
This chapter introduces JavaScript and discusses some of its fundamental concepts.
*********************
This chapter introduces collections of data which are indexed by a key; Map and Set objects contain elements which are iterable in the order of insertion.
*********************
Loops offer a quick and easy way to do something repeatedly. This
chapter of the JavaScript Guide
introduces the different iteration statements available to JavaScript.
*********************
Starting with ECMAScript 2015, JavaScript gains support for the {{jsxref("Proxy")}} and {{jsxref("Reflect")}} objects allowing you to intercept and define custom behavior for fundamental language operations (e.g. property lookup, assignment, enumeration, function invocation, etc). With the help of these two objects you are able to program at the meta level of JavaScript.
*********************
This guide gives you all you need to get started with JavaScript module syntax.
*********************
Assertions include boundaries, which indicate the beginnings and endings of lines and words, and other patterns indicating in some way that a match is possible (including look-ahead, look-behind, and conditional expressions).
*********************
Character classes distinguish kinds of characters such as, for example, distinguishing between letters and digits.
*********************
Groups and ranges indicate groups and ranges of expression characters.
*********************
Regular expressions are patterns used to match character combinations in strings. In JavaScript, regular expressions are also objects. These patterns are used with the {{jsxref("RegExp.exec", "exec()")}} and {{jsxref("RegExp.test", "test()")}} methods of {{jsxref("RegExp")}}, and with the {{jsxref("String.match", "match()")}}, {{jsxref("String.matchAll", "matchAll()")}}, {{jsxref("String.replace", "replace()")}}, {{jsxref("String.replaceAll", "replaceAll()")}}, {{jsxref("String.search", "search()")}}, and {{jsxref("String.split", "split()")}} methods of {{jsxref("String")}}. This chapter describes JavaScript regular expressions.
*********************
Quantifiers indicate numbers of characters or expressions to match.
*********************
Unicode property escapes Regular Expressions allows for matching characters based on their Unicode properties. A character is described by several properties which are either binary ("boolean-like") or non-binary. For instance, unicode property escapes can be used to match emojis, punctuations, letters (even letters from specific languages or scripts), etc.
*********************
This chapter introduces how to work with strings and text in JavaScript.
*********************
JavaScript is designed on a simple object-based paradigm. An object is a collection of properties, and a property is an association between a name (or key) and a value. A property's value can be a function, in which case the property is known as a method. In addition to objects that are predefined in the browser, you can define your own objects. This chapter describes how to use objects, properties, functions, and methods, and how to create your own objects.
*********************
JavaScript is a bit confusing for developers experienced in class-based languages (like Java or C++), as it is dynamic and does not provide a class implementation per se (the class keyword is introduced in ES2015, but is syntactical sugar, JavaScript remains prototype-based).
*********************
Whereas HTML defines a webpage's structure and content and CSS sets the formatting and appearance, JavaScript adds interactivity to a webpage and creates rich web applications.
*********************
ECMAScript is the scripting language that forms the basis of JavaScript. ECMAScript standardized by the ECMA International standards organization in the ECMA-262 and ECMA-402 specifications. The following ECMAScript standards have been approved or are being worked on:
*********************
Low-level languages like C, have manual memory management primitives such as malloc() and free(). In contrast, JavaScript automatically allocates memory when objects are created and frees it when they are not used anymore (garbage collection). This automaticity is a potential source of confusion: it can give developers the false impression that they don't need to worry about memory management.
*********************
The JavaScript reference serves as a repository of facts about the JavaScript language. The entire language is described here in detail. As you write JavaScript code, you'll refer to these pages often (thus the title "JavaScript reference"). If you're learning JavaScript, or need help understanding some of its capabilities or features, check out the JavaScript guide.
*********************
The extends keyword is used in class declarations or
class expressions to
create a class that is a child of another class.
*********************
Classes are a template for creating objects. They encapsulate data with code to work on that data. Classes in JS are built on prototypes but also have some syntax and semantics that are not shared with ES5 class-like semantics.
*********************
Class properties are public by default and can be examined or modified outside the
class. There is however a
stage 3 proposal to allow defining private class fields using a hash
# prefix.
*********************
This page describes experimental features.
*********************
This page lists features of JavaScript that are deprecated (that is, still available but planned for removal) and obsolete (that is, no longer usable).
*********************
Firefox, prior to version 26 implemented another iterator protocol that is similar to the standard ES2015 Iterator protocol.
*********************
The JavaScript warning "-file- is being assigned a //# sourceMappingURL, but already has one." occurs when a source map has been specified more than once for a given JavaScript source.
*********************
The JavaScript exception "invalid Array.prototype.sort argument" occurs when the argument of {{jsxref("Array.prototype.sort()")}} isn't either {{jsxref("undefined")}} or a function which compares its operands.
*********************
The JavaScript warning "08 (or 09) is not a legal ECMA-262 octal constant" occurs when
08 or 09 number literals are used. They can't be interpreted
as an octal number.
*********************
The JavaScript exception "radix must be an integer at least 2 and no greater than 36"
occurs when the optional radix parameter of the
{{jsxref("Number.prototype.toString()")}} or
the {{jsxref("BigInt.prototype.toString()")}} method was specified and is not between 2
and 36.
*********************
The JavaScript exception "invalid regular expression flag" occurs when the flags,
defined after the second slash in regular expression literal, are not one of
g, i, m, s, u, or
y.
*********************
The JavaScript exception "return (or yield) not in function" occurs when a
return
or yield
statement is called outside of a function.
*********************
The JavaScript exception "called on incompatible target (or object)" occurs when a
function (on a given object), is called with a this not corresponding to
the type expected by the function.
*********************
The JavaScript exception "can't access lexical declaration `variable' before
initialization" occurs when a lexical variable was accessed before it was initialized.
This happens within any block statement, when
let or
const
declarations are accessed before they are defined.
*********************
The JavaScript exception "can't access property" occurs when property access was
operated on {{jsxref("undefined")}} or {{jsxref("null")}} values.
*********************
The JavaScript strict mode exception "can't assign to property" occurs when attempting
to create a property on primitive value
such as a symbol, a string, a number or a boolean. Primitive values cannot hold any property.
*********************
The JavaScript exception "can't define property "x": "obj" is not extensible" occurs
when {{jsxref("Object.preventExtensions()")}} marked an object as no longer extensible,
so that it will never have properties beyond the ones it had at the time it was marked
as non-extensible.
*********************
The JavaScript exception "property is non-configurable and can't be deleted" occurs
when it was attempted to delete a property, but that property is non-configurable.
*********************
The JavaScript exception "can't redefine non-configurable property" occurs when it was
attempted to redefine a property, but that property is non-configurable.
*********************
The JavaScript exception "cyclic object value" occurs when object references were found
in JSON. {{jsxref("JSON.stringify()")}} doesn't try
to solve them and fails accordingly.
*********************
The JavaScript exception "can't access dead object" occurs when Firefox disallows
add-ons to keep strong references to DOM objects after their parent document has been
destroyed to improve in memory usage and to prevent memory leaks.
*********************
The JavaScript strict mode-only exception "applying the 'delete' operator to an unqualified name is deprecated" occurs when variables are attempted to be deleted using the delete operator.
*********************
The JavaScript strict
mode-only exception "deprecated caller or arguments usage" occurs when the
deprecated {{jsxref("Function.caller")}} or {{jsxref("Function.arguments")}} properties
are used.
*********************
The JavaScript warning "expression closures are deprecated" occurs when the
non-standard expression
closure syntax (shorthand function syntax) is used.
*********************
The JavaScript strict
mode-only exception "0-prefixed octal literals and octal escape sequences are
deprecated; for octal literals use the "0o" prefix instead" occurs when deprecated octal
literals and octal escape sequences are used.
*********************
The JavaScript warning "Using //@ to indicate sourceURL pragmas is deprecated. Use //# instead" occurs when there is a deprecated source map syntax in a JavaScript source.
*********************
The JavaScript warning about string generics occurs in Firefox versions prior to 68.
String generics have been removed starting with Firefox 68.
*********************
The JavaScript warning "Date.prototype.toLocaleFormat is deprecated; consider using
Intl.DateTimeFormat instead" occurs when the non-standard
{{jsxref("Date.prototype.toLocaleFormat")}} method is used.
*********************
The JavaScript warning "test for equality (==) mistyped as assignment (=)?" occurs when
there was an assignment (=) when you would normally expect a test for
equality (==).
*********************
The JavaScript warning "JavaScript 1.6's for-each-in loops are deprecated; consider
using ES6 for-of instead" occurs when a {{jsxref("Statements/for_each...in", "for each
(variable in obj)")}} statement is used.
*********************
The JavaScript strict
mode-only exception "setting getter-only property" occurs when there is an attempt
to set a new value to a property for which only a getter is specified.
*********************
The JavaScript exception "Unexpected '#' used outside of class body" occurs when a hash
("#") is encountered in an unexpected context, most notably outside of a
class declaration. Hashes are valid at the beginning of a file as a hashbang comment, or
inside of a class as part of a private field. You may encounter this error if you forget
the quotation marks when trying to access a DOM identifier as well.
*********************
The JavaScript exception "identifier starts immediately after numeric literal" occurs
when an identifier started with a digit. Identifiers can only start with a letter,
underscore (_), or dollar sign ($).
*********************
The JavaScript exception "illegal character" occurs when there is an invalid or
unexpected token that doesn't belong at this position in the code.
*********************
The JavaScript exception "right-hand side of 'in' should be an object" occurs when the
in operator
was used to search in strings, or in numbers, or other primitive types. It can only be
used to check if a property is in an object.
*********************
Below, you'll find a list of errors which are thrown by JavaScript. These errors can be a helpful debugging aid, but the reported problem isn't always immediately clear. The pages below will provide additional details about these errors. Each error is an object based upon the {{jsxref("Error")}} object, and has a name and a message.
*********************
The JavaScript exception "Invalid array length" occurs when creating
an {{jsxref("Array")}} or an {{jsxref("ArrayBuffer")}} which has a length which is
either negative or larger or equal to 232, or when setting the
{{jsxref("Array.length")}} property to a value which is either negative or larger or
equal to 232.
*********************
The JavaScript exception "invalid assignment left-hand side" occurs when there was an
unexpected assignment somewhere. For example, a single "=" sign was used
instead of "==" or "===".
*********************
The JavaScript exception "invalid assignment to const" occurs when it was attempted to
alter a constant value. JavaScript
const
declarations can't be re-assigned or redeclared.
*********************
The JavaScript exception "invalid date" occurs when a string leading to an invalid date
has been provided to {{jsxref("Date")}} or {{jsxref("Date.parse()")}}.
*********************
The JavaScript strict
mode-only exception "for-in loop head declarations may not have initializers"
occurs when the head of a for...in contains
an initializer expression, such as |for (var i = 0 in obj)|. This is not
allowed in for-of loops in strict mode.
*********************
The JavaScript exception "a declaration in the head of a for-of loop can't have an initializer" occurs when the head of a for...of loop contains an initializer expression such as |for (var i = 0 of iterable)|. This is not allowed in for-of loops.
*********************
The JavaScript exception "invalid 'instanceof' operand" occurs when the right hand side
operands of the instanceof
operator isn't used with a constructor object, i.e. an object which has a
prototype property and is callable.
*********************
The JavaScript exception "is not iterable" occurs when the value which is given as the
right hand-side of for…of
or as argument of a function such as {{jsxref("Promise.all")}} or
{{jsxref("TypedArray.from")}}, is not an iterable
object.
*********************
The JavaScript exceptions thrown by {{jsxref("JSON.parse()")}} occur when string failed
to be parsed as JSON.
*********************
The JavaScript exception "malformed formal parameter" occurs when the argument list of
a
Function()
constructor call is invalid somehow.
*********************
The JavaScript exception "malformed URI sequence" occurs when URI encoding or decoding
wasn't successful.
*********************
The JavaScript exception "missing ] after element list" occurs when there is an error
with the array initializer syntax somewhere. Likely there is a closing bracket
("]") or a comma (",") missing.
*********************
The JavaScript exception "missing : after property id" occurs when objects are created
using the object
initializer syntax. A colon (:) separates keys and values for the
object's properties. Somehow, this colon is missing or misplaced.
*********************
The JavaScript exception "missing } after function body" occurs when there is a syntax
mistake when creating a function somewhere. Check if any closing curly brackets or
parenthesis are in the correct order.
*********************
The JavaScript exception "missing } after property list" occurs when there is a mistake
in the object
initializer syntax somewhere. Might be in fact a missing curly bracket, but could
also be a missing comma.
*********************
The JavaScript exception "missing formal parameter" occurs when your function
declaration is missing valid parameters.
*********************
The JavaScript exception "missing = in const declaration" occurs when a const
declaration was not given a value in the same statement (like
const RED_FLAG;). You need to provide one
(const RED_FLAG = '#ff0').
*********************
The JavaScript exception "missing name after . operator" occurs when there is a problem
with how the dot operator (.) is used for property
access.
*********************
The JavaScript exception "missing ) after argument list" occurs when there is an error
with how a function is called. This might be a typo, a missing operator, or an unescaped
string.
*********************
The JavaScript exception "missing ) after condition" occurs when there is an error with
how an
if
condition is written. It must appear in parenthesis after the if keyword.
*********************
The JavaScript exception "missing ; before statement" occurs when there is a semicolon
(;) missing somewhere and can't be added by automatic
semicolon insertion (ASI). You need to provide a semicolon, so that JavaScript can
parse the source code correctly.
*********************
The JavaScript exception "more arguments needed" occurs when there is an error with how
a function is called. More arguments need to be provided.
*********************
The JavaScript exception "repeat count must be non-negative" occurs when the
{{jsxref("String.prototype.repeat()")}} method is used with a count
argument that is a negative number.
*********************
The JavaScript exception "is not a non-null object" occurs when an object is expected
somewhere and wasn't provided. {{jsxref("null")}} is not an object and won't work.
*********************
The JavaScript exception "null (or undefined) has no properties" occurs when you
attempt to access properties of {{jsxref("null")}} and {{jsxref("undefined")}}. They
don't have any.
*********************
The JavaScript exception "missing variable name" occurs way too often as naming things
is so hard. Or maybe a comma is wrong. Check for typos!
*********************
The JavaScript exception "can't delete non-configurable array element" occurs when it
was attempted to shorten
the length of an array, but one of the array's elements is non-configurable.
*********************
The JavaScript exception "Invalid code point" occurs when {{jsxref("NaN")}} values,
negative Integers (-1), non-Integers (5.4), or values larger than 0x10FFFF (1114111) are
used with {{jsxref("String.fromCodePoint()")}}.
*********************
The JavaScript exception "is not a constructor" occurs when there was an attempt to use
an object or a variable as a constructor, but that object or variable is not a
constructor.
*********************
The JavaScript exception "is not a function" occurs when there was an attempt to call a
value from a function, but the value is not actually a function.
*********************
The JavaScript exception "variable is not defined" occurs when there is a
non-existent variable referenced somewhere.
*********************
The JavaScript exception "precision is out of range" occurs when a number that's
outside of the range of 0 and 20 (or 21) was passed into toFixed or
toPrecision.
*********************
The JavaScript exception "Permission denied to access property" occurs when there was
an attempt to access an object for which you have no permission.
*********************
The JavaScript strict
mode-only exception "is read-only" occurs when a global variable or object
property that was assigned to is a read-only property.
*********************
The JavaScript exception "redeclaration of formal parameter" occurs when the same
variable name occurs as a function parameter and is then redeclared using a
{{jsxref("Statements/let", "let")}} assignment in a function body again.
*********************
The JavaScript exception "reduce of empty array with no initial value" occurs when a
reduce function is used.
*********************
The JavaScript exception "variable is a reserved identifier" occurs when reserved
keywords are used as identifiers.
*********************
The JavaScript exception "repeat count must be less than infinity" occurs when the
{{jsxref("String.prototype.repeat()")}} method is used with a count
argument that is infinity.
*********************
The JavaScript warning "unreachable code after return statement" occurs when using an
expression after a {{jsxref("Statements/return", "return")}} statement, or when using a
semicolon-less return statement but including an expression directly after.
*********************
The JavaScript exception "'use strict' not allowed in function" occurs
when a "use strict" directive is used at the top of a function with
{{jsxref("Functions/Default_parameters", "default parameters", "", 1)}},
{{jsxref("Functions/rest_parameters", "rest parameters", "", 1)}}, or
{{jsxref("Operators/Destructuring_assignment", "destructuring parameters", "", 1)}}.
*********************
The JavaScript exception "too much recursion" or "Maximum call stack size exceeded"
occurs when there are too many function calls, or a function is missing a base case.
*********************
The JavaScript exception "invalid arguments" occurs when typed array constructors are
provided with a wrong argument.
*********************
The JavaScript strict
mode-only exception "Assignment to undeclated variable" occurs when the value has
been assigned to an undeclared variable.
*********************
The JavaScript warning "reference to undefined property" occurs when a script attempted
to access an object property which doesn't exist.
*********************
The JavaScript exceptions "unexpected token" occur when a specific language construct
was expected, but something else was provided. This might be a simple typo.
*********************
The JavaScript exception "x is (not) y" occurs when there was an
unexpected type. Oftentimes, unexpected {{jsxref("undefined")}} or {{jsxref("null")}}
values.
*********************
The JavaScript exception "function statement requires a name" occurs when there is a function statement
in the code that requires a name.
*********************
The JavaScript error "unterminated string literal" occurs when there is an unterminated
{{jsxref("String")}} somewhere. String literals must be enclosed by single
(') or double (") quotes.
*********************
The JavaScript strict
mode-only exception "variable redeclares argument" occurs when the same variable
name occurs as a function parameter and is then redeclared using a
var
assignment in a function body again.
*********************
The initial value of the @@iterator property is the same
function object as the initial value of the {{jsxref("Array.prototype.values")}}
property.
*********************
The arguments.callee property contains the currently executing function.
*********************
arguments is an Array-like object accessible inside functions that contains the values of the arguments passed to that function.
*********************
The arguments.length property contains the number of arguments passed to the function.
*********************
An arrow function expression is a compact alternative to a traditional
function
expression, but is limited and can't be used in all situations.
*********************
The get syntax binds an object property to a function
that will be called when that property is looked up.
*********************
Generally speaking, a function is a "subprogram" that can be called by code
external (or internal in the case of recursion) to the function. Like the program
itself, a function is composed of a sequence of statements called the function
body. Values can be passed to a function, and the function
will return a value.
*********************
Starting with ECMAScript 2015, a shorter syntax for method definitions on objects
initializers is introduced. It is a shorthand for a function assigned to the method's
name.
*********************
The AggregateError() constructor creates an error for
several errors that need to be wrapped in a single error.
*********************
The AggregateError object represents an error when several errors need to be wrapped in a single error. It is thrown when multiple errors need to be reported by an operation, for example by {{JSxRef("Promise.any()")}}, when all promises passed to it reject.
*********************
The @@iterator method is part of The
iterable protocol, that defines how to synchronously iterate over a sequence of
values.
*********************
The Array[@@species] accessor property returns the
Array constructor.
*********************
The @@unscopable symbol property contains property names that were not included in the ECMAScript standard prior to the ES2015 version. These properties are excluded from with statement bindings.
*********************
The Array() constructor is used to create
{{jsxref("Array")}} objects.
*********************
The at() method takes an integer value and returns the item at that index, allowing for positive and negative integers. Negative integers count back from the last item in the array.
*********************
The concat() method is used to merge two or more arrays.
This method does not change the existing arrays, but instead returns a new array.
*********************
The copyWithin() method shallow copies part of an array
to another location in the same array and returns it without modifying its length.
*********************
The entries() method returns a new Array
Iterator object that contains the key/value pairs for each index in the
array.
*********************
The filter() method creates a new array with all elements that pass the test implemented by the provided function.
*********************
The flat() method creates a new array with all sub-array
elements concatenated into it recursively up to the specified depth.
*********************
The flatMap() method returns a new array formed by
applying a given callback function to each element of the array, and then flattening the
result by one level. It is identical to a {{jsxref("Array.prototype.map","map()")}}
followed by a {{jsxref("Array.prototype.flat","flat()")}} of depth 1, but slightly more
efficient than calling those two methods separately.
*********************
The forEach() method executes a provided function once
for each array element.
*********************
The includes() method determines whether an array
includes a certain value among its entries, returning true or
false as appropriate.
*********************
The JavaScript Array class is a global object that is used in the construction of arrays; which are high-level, list-like objects.
*********************
The indexOf() method returns the first index at which a
given element can be found in the array, or -1 if it is not present.
*********************
The Array.isArray() method determines whether the passed
value is an {{jsxref("Array")}}.
*********************
The keys() method returns a new Array
Iterator object that contains the keys for each index in the array.
*********************
The lastIndexOf() method returns the last index at which
a given element can be found in the array, or -1 if it is not present. The array is
searched backwards, starting at fromIndex.
*********************
The length property of an object which is an instance of type Array sets or returns the number of elements in that array. The value is an unsigned, 32-bit integer that is always numerically greater than the highest index in the array.
*********************
The Array.of() method creates a new Array
instance from a variable number of arguments, regardless of number or type of the
arguments.
*********************
The pop() method removes the last
element from an array and returns that element. This method changes the length of the
array.
*********************
The push() method adds one or more elements to the end of
an array and returns the new length of the array.
*********************
The reduce() method executes a reducer
function (that you provide) on each element of the array, resulting in single output
value.
*********************
The reduceRight() method applies a function against an
accumulator and each value of the array (from right-to-left) to reduce it to a single
value.
*********************
The reverse() method reverses an array in place. The first
array element becomes the last, and the last array element becomes the first.
*********************
The shift() method removes the first
element from an array and returns that removed element. This method changes the length
of the array.
*********************
The slice() method returns a shallow copy of a portion of
an array into a new array object selected from start to end
(end not included) where start and end represent
the index of items in that array. The original array will not be modified.
*********************
The sort() method sorts the elements of an array in place and
returns the sorted array. The default sort order is ascending, built upon converting the
elements into strings, then comparing their sequences of UTF-16 code units values.
*********************
The splice() method changes the contents of an array by
removing or replacing existing elements and/or adding new elements in place.
*********************
The toLocaleString() method returns a string representing
the elements of the array. The elements are converted to Strings using their
toLocaleString methods and these Strings are separated by a locale-specific
String (such as a comma “,”).
*********************
The toSource() method returns a string representing the
source code of the array.
*********************
The toString() method returns a string representing the
specified array and its elements.
*********************
The unshift() method adds one or more elements to the
beginning of an array and returns the new length of the array.
*********************
The values() method returns a new
Array Iterator object that contains the values for each
index in the array.
*********************
The ArrayBuffer[@@species] accessor property returns the ArrayBuffer constructor.
*********************
The ArrayBuffer() constructor is used to create
{{jsxref("ArrayBuffer")}} objects.
*********************
The byteLength accessor property represents the length of an {{jsxref("ArrayBuffer")}} in bytes.
*********************
The ArrayBuffer object is used to represent a generic, fixed-length raw binary data buffer.
*********************
The ArrayBuffer.isView() method determines whether the
passed value is one of the ArrayBuffer views, such as typed array
objects or a {{jsxref("DataView")}}.
*********************
The slice() method returns a new ArrayBuffer
whose contents are a copy of this ArrayBuffer's bytes from
begin, inclusive, up to end, exclusive.
*********************
The AsyncFunction constructor creates a new
{{jsxref("Statements/async_function", "async function", "", 1)}} object. In JavaScript,
every asynchronous function is actually an AsyncFunction object.
*********************
The static Atomics.add()
method adds a given value at a given position in the array and returns the old value at
that position. This atomic operation guarantees that no other write happens until the
modified value is written back.
*********************
The static Atomics.and()
method computes a bitwise AND with a given value at a given position in the array, and
returns the old value at that position. This atomic operation guarantees that no other
write happens until the modified value is written back.
*********************
The static
Atomics.compareExchange()
method exchanges a given replacement value at a given position in the array, if a given
expected value equals the old value.  It returns the old value at that position whether
it was equal to the expected value or not. This atomic operation guarantees that no
other write happens until the modified value is written back.
*********************
The static Atomics.exchange() method stores a given value
at a given position in the array and returns the old value at that position. This atomic
operation guarantees that no other write happens between the read of the old value and
the write of the new value.
*********************
The Atomics object provides atomic operations as static methods. They are used with {{jsxref("SharedArrayBuffer")}} and {{jsxref("ArrayBuffer")}} objects.
*********************
The static
Atomics.isLockFree()
method is used to determine whether to use locks or atomic operations. It returns
true, if the given size is one of the BYTES_PER_ELEMENT
property of integer TypedArray types.
*********************
The static Atomics.load()
method returns a value at a given position in the array.
*********************
The static Atomics.notify()
method notifies up some agents that are sleeping in the wait queue.
*********************
The static Atomics.or()
method computes a bitwise OR with a given value at a given position in the array, and
returns the old value at that position. This atomic operation guarantees that no other
write happens until the modified value is written back.
*********************
The static Atomics.store()
method stores a given value at the given position in the array and returns that value.
*********************
The static Atomics.sub() method substracts a given value
at a given position in the array and returns the old value at that position. This atomic
operation guarantees that no other write happens until the modified value is written
back.
*********************
The static Atomics.wait()
method verifies that a given position in an {{jsxref("Int32Array")}} still contains a
given value and if so sleeps, awaiting a wakeup or a timeout. It returns a string which
is either "ok", "not-equal", or "timed-out".
*********************
The static Atomics.xor()
method computes a bitwise XOR with a given value at a given position in the array, and
returns the old value at that position. This atomic operation guarantees that no other
write happens until the modified value is written back.
*********************
The BigInt.asIntN static method clamps a BigInt value to a signed integer value, and returns that value.
*********************
The BigInt.asUintN static method clamps a BigInt value to an unsigned integer value, and returns that value.
*********************
The BigInt() constructor returns a value of type
bigint.
*********************
BigInt is a built-in object whose constructor returns a bigint {{Glossary("Primitive", "primitive")}} — also called a BigInt value, or sometimes just a BigInt — to represent whole numbers larger than 253 - 1 (Number.MAX_SAFE_INTEGER), which is the largest number JavaScript can represent with a number {{Glossary("Primitive", "primitive")}} (or Number value). BigInt values can be used for arbitrarily large integers.
*********************
The toLocaleString() method returns a string with a
language-sensitive representation of this BigInt.
*********************
The toString() method returns a string representing the
specified {{jsxref("BigInt")}} object. The trailing "n" is not part of the string.
*********************
The valueOf() method returns the wrapped primitive value
of a {{jsxref("BigInt")}} object.
*********************
The BigInt64Array() typed array constructor creates a new
{{jsxref("BigInt64Array")}} object, which is, an array of 64-bit signed integers in the
platform byte order. If control over byte order is needed, use {{jsxref("DataView")}}
instead. The contents are initialized to 0n. Once established, you can
reference elements in the array using the object's methods, or by using standard array
index syntax (that is, using bracket notation).
*********************
The BigInt64Array typed array represents an array of 64-bit signed integers in the platform byte order. If control over byte order is needed, use {{jsxref("DataView")}} instead. The contents are initialized to 0n. Once established, you can reference elements in the array using the object's methods, or by using standard array index syntax (that is, using bracket notation).
*********************
The BigUint64Array() typed array constructor creates a
new {{jsxref("BigUint64Array")}} object, which is, an array of 64-bit unsigned integers
in the platform byte order. If control over byte order is needed, use
{{jsxref("DataView")}} instead. The contents are initialized to 0n. Once
established, you can reference elements in the array using the object's methods, or by
using standard array index syntax (that is, using bracket notation).
*********************
The BigUint64Array typed array represents an array of 64-bit unsigned integers in the platform byte order. If control over byte order is needed, use {{jsxref("DataView")}} instead. The contents are initialized to 0n. Once established, you can reference elements in the array using the object's methods, or by using standard array index syntax (that is, using bracket notation).
*********************
The Boolean() constructor is used to create
{{jsxref("Boolean")}} objects.
*********************
The Boolean object is an object wrapper for a boolean value.
*********************
The toSource() method returns a string representing the
source code of the object.
*********************
The toString() method returns a string representing the
specified Boolean object.
*********************
The valueOf() method returns the primitive value of a
{{jsxref("Boolean")}} object.
*********************
The buffer accessor property represents the {{jsxref("ArrayBuffer")}} or {{jsxref("SharedArrayBuffer")}} referenced by the DataView at construction time.
*********************
The byteLength accessor property represents the length (in bytes) of this view from the start of its {{jsxref("ArrayBuffer")}} or {{jsxref("SharedArrayBuffer")}}.
*********************
The byteOffset accessor property represents the offset (in bytes) of this view from the start of its {{jsxref("ArrayBuffer")}} or {{jsxref("SharedArrayBuffer")}}.
*********************
The DataView() constructor is used to create
{{jsxref("DataView")}} objects.
*********************
The getBigInt64() method gets a signed 64-bit integer
(long long) at the specified byte offset from the start of the {{jsxref("DataView")}}.
*********************
The getBigUint64() method gets an unsigned 64-bit integer
(unsigned long long) at the specified byte offset from the start of the
{{jsxref("DataView")}}.
*********************
The getFloat32() method gets a signed 32-bit float
(float) at the specified byte offset from the start of the {{jsxref("DataView")}}.
*********************
The getFloat64() method gets a signed 64-bit float
(double) at the specified byte offset from the start of the {{jsxref("DataView")}}.
*********************
The getInt16() method gets a signed 16-bit integer
(short) at the specified byte offset from the start of the {{jsxref("DataView")}}.
*********************
The getInt32() method gets a signed 32-bit integer (long)
at the specified byte offset from the start of the {{jsxref("DataView")}}.
*********************
The getInt8() method gets a signed 8-bit integer (byte)
at the specified byte offset from the start of the {{jsxref("DataView")}}.
*********************
The getUint16() method gets an unsigned 16-bit integer
(unsigned short) at the specified byte offset from the start of the
{{jsxref("DataView")}}.
*********************
The getUint32() method gets an unsigned 32-bit integer
(unsigned long) at the specified byte offset from the start of the
{{jsxref("DataView")}}.
*********************
The getUint8() method gets an unsigned 8-bit integer
(unsigned byte) at the specified byte offset from the start of the
{{jsxref("DataView")}}.
*********************
The setBigInt64() method stores a signed 64-bit integer
(long long) value at the specified byte offset from the start of the
{{jsxref("DataView")}}.
*********************
The setBigUint64() method stores an unsigned 64-bit
integer (unsigned long long) value at the specified byte offset from the start of the
{{jsxref("DataView")}}.
*********************
The setFloat32() method stores a signed 32-bit float
(float) value at the specified byte offset from the start of the {{jsxref("DataView")}}.
*********************
The setFloat64() method stores a signed 64-bit float
(double) value at the specified byte offset from the start of the
{{jsxref("DataView")}}.
*********************
The setInt16() method stores a signed 16-bit integer
(short) value at the specified byte offset from the start of the {{jsxref("DataView")}}.
*********************
The setInt32() method stores a signed 32-bit integer
(long) value at the specified byte offset from the start of the {{jsxref("DataView")}}.
*********************
The setInt8() method stores a signed 8-bit integer (byte)
value at the specified byte offset from the start of the {{jsxref("DataView")}}.
*********************
The setUint16() method stores an unsigned 16-bit integer
(unsigned short) value at the specified byte offset from the start of the
{{jsxref("DataView")}}.
*********************
The setUint32() method stores an unsigned 32-bit integer
(unsigned long) value at the specified byte offset from the start of the
{{jsxref("DataView")}}.
*********************
The setUint8() method stores an unsigned 8-bit integer
(byte) value at the specified byte offset from the start of the {{jsxref("DataView")}}.
*********************
The [@@toPrimitive]() method converts a Date
object to a primitive value.
*********************
The getDate() method returns the day of the month for the
specified date according to local time.
*********************
The getFullYear() method returns the year of the
specified date according to local time.
*********************
The getHours() method returns the hour for the specified
date, according to local time.
*********************
The getMilliseconds() method returns the milliseconds in
the specified date according to local time.
*********************
The getMinutes() method returns the minutes in the
specified date according to local time.
*********************
The getMonth() method returns the month in the specified
date according to local time, as a zero-based value (where zero indicates the first
month of the year).
*********************
The getSeconds() method returns the seconds in the
specified date according to local time.
*********************
The getTime() method returns the number of milliseconds*
since the Unix Epoch.
*********************
The getTimezoneOffset() method returns the difference, in minutes, between a date as evaluated in the UTC time zone, and the same date as evaluated in the local time zone.
*********************
The getUTCDate() method returns the day of the month(from
1 to 31) in the specified date according to universal time.
*********************
The getUTCDay() method returns the day of the week in the
specified date according to universal time, where 0 represents Sunday.
*********************
The getUTCFullYear() method returns the year in the
specified date according to universal time.
*********************
The getUTCHours() method returns the hours in the
specified date according to universal time.
*********************
The getUTCMilliseconds() method returns the milliseconds
portion of the time object's value.
*********************
The getUTCMinutes() method returns the minutes in the
specified date according to universal time.
*********************
The getUTCMonth() returns the month of the specified date
according to universal time, as a zero-based value (where zero indicates the first month
of the year).
*********************
The getUTCSeconds() method returns the seconds in the
specified date according to universal time.
*********************
The getYear() method returns the year in the specified
date according to local time. Because getYear() does not return full years
("year 2000 problem"), it is no longer used and has been replaced by the
{{jsxref("Date.prototype.getFullYear", "getFullYear()")}} method.
*********************
The static Date.now() method returns the number of
milliseconds elapsed since January 1, 1970 00:00:00 UTC.
*********************
The Date.parse() method parses a string representation of
a date, and returns the number of milliseconds since January 1, 1970, 00:00:00 UTC or
NaN if the string is unrecognized or, in some cases, contains illegal date
values (e.g. 2015-02-31).
*********************
The setDate() method changes the day of the month of a given {{jsxref("Date")}} instance, based on local time.
*********************
The setFullYear() method sets the full year for a
specified date according to local time. Returns new timestamp.
*********************
The setHours() method sets the hours for a specified date
according to local time, and returns the number of milliseconds since January 1, 1970
00:00:00 UTC until the time represented by the updated {{jsxref("Date")}} instance.
*********************
The setMilliseconds() method sets the milliseconds for a
specified date according to local time.
*********************
The setMinutes() method sets the minutes for a specified
date according to local time.
*********************
The setMonth() method sets the month for a specified date
according to the currently set year.
*********************
The setSeconds() method sets the seconds for a specified
date according to local time.
*********************
The setTime() method sets the {{jsxref("Date")}} object
to the time represented by a number of milliseconds since January 1, 1970, 00:00:00 UTC.
*********************
The setUTCDate() method changes the day of the month of a given {{jsxref("Date")}} instance, based on UTC time.
*********************
The setUTCFullYear() method sets the full year for a
specified date according to universal time.
*********************
The setUTCHours() method sets the hour for a specified
date according to universal time, and returns the number of milliseconds since  January
1, 1970 00:00:00 UTC until the time represented by the updated {{jsxref("Date")}}
instance.
*********************
The setUTCMilliseconds() method sets the milliseconds for
a specified date according to universal time.
*********************
The setUTCMinutes() method sets the minutes for a
specified date according to universal time.
*********************
The setUTCMonth() method sets the month for a specified
date according to universal time.
*********************
The setUTCSeconds() method sets the seconds for a
specified date according to universal time.
*********************
The setYear() method sets the year for a specified date
according to local time. Because setYear() does not set full years ("year
2000 problem"), it is no longer used and has been replaced by the
{{jsxref("Date.prototype.setFullYear()", "setFullYear()")}} method.
*********************
The toDateString() method returns the date portion of a
{{jsxref("Date")}} object in English in the following format separated by spaces:
*********************
The toGMTString() method converts a date to a string,
using Internet Greenwich Mean Time (GMT) conventions. The exact format of the value
returned by toGMTString() varies according to the platform and browser, in
general it should represent a human readable date string.
*********************
The toISOString() method returns a string in
simplified extended ISO format (ISO 8601), which is always 24 or 27
characters long
(YYYY-MM-DDTHH:mm:ss.sssZ
or
±YYYYYY-MM-DDTHH:mm:ss.sssZ,
respectively). The timezone is always zero UTC offset, as denoted by the suffix
"Z".
*********************
The toJSON() method returns a string representation of
the {{jsxref("Date")}} object.
*********************
The toLocaleDateString() method returns a string with a
language sensitive representation of the date portion of this date. The new
locales and options arguments let applications specify the
language whose formatting conventions should be used and allow to customize the behavior
of the function. In older implementations, which ignore the locales and
options arguments, the locale used and the form of the string returned are
entirely implementation dependent.
*********************
The toLocaleString() method returns a string with a
language sensitive representation of this date.
*********************
The toLocaleTimeString() method returns a string with a
language sensitive representation of the time portion of this date. The new
locales and options arguments let applications specify the
language whose formatting conventions should be used and customize the behavior of the
function. In older implementations, which ignore the locales and
options arguments, the locale used and the form of the string returned are
entirely implementation dependent.
*********************
The toSource() method returns a string representing the
source code of the object.
*********************
The toString() method returns a string representing the
specified {{jsxref("Date")}} object.
*********************
The toTimeString() method returns the time portion of a
{{jsxref("Date")}} object in human readable form in English.
*********************
The toUTCString() method converts a date to a string,
using the UTC time zone.
*********************
The Date.UTC() method accepts parameters similar to the
{{jsxref("Date")}} constructor, but treats them as UTC. It returns the number of
milliseconds since January 1, 1970, 00:00:00 UTC.
*********************
The valueOf() method returns the primitive value of a
{{jsxref("Date")}} object.
*********************
The decodeURIComponent() function decodes a Uniform
Resource Identifier (URI) component previously created by
{{jsxref("encodeURIComponent")}} or by a similar routine.
*********************
The encodeURI() function encodes a {{glossary("URI")}} by
replacing each instance of certain characters by one, two, three, or four escape
sequences representing the {{glossary("UTF-8")}} encoding of the character (will only be
four escape sequences for characters composed of two "surrogate" characters).
*********************
The encodeURIComponent() function encodes a
{{glossary("URI")}} by replacing each instance of certain characters by one, two, three,
or four escape sequences representing the {{glossary("UTF-8")}} encoding of the
character (will only be four escape sequences for characters composed of two "surrogate"
characters).
*********************
The columnNumber property contains the column number in the line of the file that raised this error.
*********************
The fileName property contains the path to the file that raised this error.
*********************
Error objects are thrown when runtime errors occur. The Error object can also be used as a base object for user-defined exceptions. See below for standard built-in error types.
*********************
The lineNumber property contains the line number in the file that raised this error.
*********************
The message property is a human-readable description of the error.
*********************
The name property represents a name for the type of error. The initial value is "Error".
*********************
The non-standard stack property of {{jsxref("Error")}} objects offer a trace of which functions were called, in what order, from which line and file, and with what arguments. The stack string proceeds from the most recent calls to earlier ones, leading back to the original global scope call.
*********************
The toSource() method returns code that could eval to the
same error.
*********************
The toString() method returns a string representing the
specified {{jsxref("Error")}} object.
*********************
Warning: Executing JavaScript from a string is an enormous security
risk. It is far too easy for a bad actor to run arbitrary code when you use
eval(). See Never use eval()!, below.
*********************
The EvalError constructor creates a new error regarding
the global {{jsxref("Global_Objects/eval", "eval()")}} function. This exception is not
thrown by JavaScript anymore, however the EvalError object remains for
compatibility.
*********************
The EvalError object indicates an error regarding the global {{jsxref("Global_Objects/eval", "eval()")}} function. This exception is not thrown by JavaScript anymore, however the EvalError object remains for compatibility.
*********************
The FinalizationRegistry constructor creates a {{jsxref("FinalizationRegistry")}} object that uses the given callback.
*********************
A FinalizationRegistry object lets you request a callback when an object is garbage-collected.
*********************
The register() method registers an object with a
{{jsxref("FinalizationRegistry")}} instance so that if the object is garbage-collected,
the registry's callback may get called.
*********************
The unregister unregisters a target object from a
{{jsxref("FinalizationRegistry")}} instance.
*********************
The Float32Array() typed array constructor creates a new
{{jsxref("Float32Array")}} object, which is, an array of 32-bit floating point numbers
(corresponding to the C float data type) in the platform byte order. If
control over byte order is needed, use {{jsxref("DataView")}} instead. The contents are
initialized to 0. Once established, you can reference elements in the array
using the object's methods, or using standard array index syntax (that is, using bracket
notation).
*********************
The Float32Array typed array represents an array of 32-bit floating point numbers (corresponding to the C float data type) in the platform byte order. If control over byte order is needed, use {{jsxref("DataView")}} instead. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).
*********************
The Float64Array() typed array constructor creates a new
{{jsxref("Float64Array")}} object, which is, an array of 64-bit floating point numbers
(corresponding to the C double data type) in the platform byte order. If
control over byte order is needed, use {{jsxref("DataView")}} instead. The contents are
initialized to 0. Once established, you can reference elements in the array
using the object's methods, or using standard array index syntax (that is, using bracket
notation).
*********************
The Float64Array typed array represents an array of 64-bit floating point numbers (corresponding to the C double data type) in the platform byte order. If control over byte order is needed, use {{jsxref("DataView")}} instead. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).
*********************
The apply() method calls a function with a given this value, and arguments provided as an array (or an array-like object).
*********************
The function.arguments property refers to an array-like object corresponding to the arguments passed to a function. Use the simple variable {{jsxref("Functions/arguments", "arguments")}} instead. This property is restricted to non-strict functions.
*********************
The function.caller property returns the function that invoked the specified function. It returns null for strict, async function and generator function callers.
*********************
The function.displayName property returns the display name of the function.
*********************
Every JavaScript function is actually a Function object. This can be seen with the code (function(){}).constructor === Function, which returns true.
*********************
The length property indicates the number of parameters expected by the function.
*********************
The toSource() method returns a string representing the
source code of the object. This method is usually called internally by JavaScript and
not explicitly in code. You can call toSource() while debugging to examine
the contents of an object.
*********************
The toString() method returns a string representing the
source code of the function.
*********************
The Generator object is returned by a {{JSxRef("Statements/function*", "generator function", "", 1)}} and it conforms to both the iterable protocol and the iterator protocol.
*********************
The return() method returns the given value and finishes
the generator.
*********************
The GeneratorFunction constructor creates a new
{{jsxref("Statements/function*", "generator function", "", 1)}} object. In JavaScript,
every generator function is actually a GeneratorFunction object.
*********************
The global property Infinity is a numeric value representing infinity.
*********************
The Int16Array typed array represents an array of twos-complement 16-bit signed integers in the platform byte order. If control over byte order is needed, use {{jsxref("DataView")}} instead. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).
*********************
The Int16Array() typed array constructor creates an array
of twos-complement 16-bit signed integers in the platform byte order. If control over
byte order is needed, use {{jsxref("DataView")}} instead. The contents are initialized
to 0. Once established, you can reference elements in the array using the
object's methods, or using standard array index syntax (that is, using bracket
notation).
*********************
The Int32Array() typed array constructor creates an array
of twos-complement 32-bit signed integers in the platform byte order. If control over
byte order is needed, use {{jsxref("DataView")}} instead. The contents are initialized
to 0. Once established, you can reference elements in the array using the
object's methods, or using standard array index syntax (that is, using bracket
notation).
*********************
The Int32Array() typed array constructor creates an array
of twos-complement 32-bit signed integers in the platform byte order. If control over
byte order is needed, use {{jsxref("DataView")}} instead. The contents are initialized
to 0. Once established, you can reference elements in the array using the
object's methods, or using standard array index syntax (that is, using bracket
notation).
*********************
The Int8Array typed array represents an array of twos-complement 8-bit signed integers. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).
*********************
The Int8Array() constructor creates a typed array of
twos-complement 8-bit signed integers. The contents are initialized to 0.
Once established, you can reference elements in the array using the object's methods, or
using standard array index syntax (that is, using bracket notation).
*********************
The InternalError object indicates an error that occurred internally in the JavaScript engine.
*********************
The InternalError() constructor creates an error that
indicates an error that occurred internally in the JavaScript engine. For example:
"InternalError: too much recursion".
*********************
The Intl[@@toStringTag] property has an initial value of
"Intl".
*********************
The Intl.Collator() constructor creates
{{jsxref("Intl/Collator", "Intl.Collator")}} objects that enable language-sensitive string
comparison.
*********************
The Intl.Collator.prototype.compare() method compares two
strings according to the sort order of this {{jsxref("Intl/Collator")}} object.
*********************
The Intl.Collator object enables language-sensitive string comparison.
*********************
The Intl.Collator.prototype.resolvedOptions() method
returns a new object with properties reflecting the locale and collation options
computed during initialization of this {{jsxref("Intl/Collator")}} object.
*********************
The Intl.Collator.supportedLocalesOf() method returns an
array containing those of the provided locales that are supported in collation without
having to fall back to the runtime's default locale.
*********************
The Intl.DateTimeFormat() constructor creates
{{jsxref("Intl/DateTimeFormat", "Intl.DateTimeFormat")}} objects that enable
language-sensitive date and time formatting.
*********************
The Intl.DateTimeFormat.prototype.format() method formats
a date according to the locale and formatting options of this
{{jsxref("Intl.DateTimeFormat")}} object.
*********************
The Intl.DateTimeFormat.prototype.formatRange() formats a
date range in the most concise way based on the locale and
options provided when instantiating
{{jsxref("Intl.DateTimeFormat")}} object.
*********************
The Intl.DateTimeFormat.prototype.formatRangeToParts()
method allows locale-specific tokens representing each part of the formatted date
range produced by {{jsxref("Intl.DateTimeFormat")}} formatters.
*********************
The Intl.DateTimeFormat.prototype.formatToParts() method
allows locale-aware formatting of strings produced by {{jsxref("Intl.DateTimeFormat")}}
formatters.
*********************
The Intl.DateTimeFormat object enables language-sensitive date and time formatting.
*********************
The Intl.DateTimeFormat.prototype.resolvedOptions()
method returns a new object with properties reflecting the locale and date and time
formatting options computed during initialization of this {{jsxref("Intl/DateTimeFormat")}}
object.
*********************
The Intl.DateTimeFormat.supportedLocalesOf() method
returns an array containing those of the provided locales that are supported in date
and time formatting without having to fall back to the runtime's default locale.
*********************
The Intl.DisplayNames() constructor creates
{{jsxref("Intl/DisplayNames", "Intl.DisplayNames")}} objects that enable the consistent
translation of language, region and script display names.
*********************
The Intl.DisplayNames object enables the consistent translation of language, region and script display names.
*********************
The Intl.DisplayNames.prototype.of() method receives a
code and returns a string based on the locale and options provided when instantiating
Intl.DisplayNames.
*********************
The Intl.DisplayNames.prototype.resolvedOptions() method
returns a new object with properties reflecting the locale and style formatting
options computed during the construction of the current {{jsxref("Intl/DisplayNames")}}
object.
*********************
The Intl.DisplayNames.supportedLocalesOf() method returns
an array containing those of the provided locales that are supported in display names
without having to fall back to the runtime's default locale.
*********************
The Intl.getCanonicalLocales() method returns an array
containing the canonical locale names. Duplicates will be omitted and elements will be
validated as structurally valid language tags.
*********************
The Intl object is the namespace for the ECMAScript Internationalization API, which provides language sensitive string comparison, number formatting, and date and time formatting. The Intl object provides access to several constructors as well as functionality common to the internationalization constructors and other language sensitive functions.
*********************
The format() method returns a string with a
language-specific representation of the list.
*********************
The Intl.ListFormat.prototype.formatToParts() method
returns an {{jsxref("Array")}} of objects representing the different components that
can be used to format a list of values in a locale-aware fashion.
*********************
The Intl.ListFormat object enables language-sensitive list formatting.
*********************
The Intl.ListFormat() constructor creates
{{jsxref("Intl/ListFormat", "Intl.ListFormat")}} objects that enable language-sensitive list
formatting.
*********************
The Intl.ListFormat.prototype.resolvedOptions() method
returns a new object with properties reflecting the locale and style formatting
options computed during the construction of the current {{jsxref("Intl/ListFormat")}}
object.
*********************
The Intl.ListFormat.supportedLocalesOf() method returns
an array containing those of the provided locales that are supported in list
formatting without having to fall back to the runtime's default locale.
*********************
The Intl.Locale.prototype.baseName property returns a substring of the Locale's string representation, containing core information about the Locale.
*********************
The Intl.Locale.prototype.calendar property is an accessor property which returns the type of calendar used in the Locale.
*********************
The Intl.Locale.prototype.hourCycle property is an accessor property that returns the time keeping format convention used by the locale.
*********************
The Intl.Locale.prototype.region property is an accessor property that returns the region of the world (usually a country) associated with the locale.
*********************
The Intl.NumberFormat.prototype.format() method formats a
number according to the locale and formatting options of this
{{jsxref("NumberFormat")}} object.
*********************
The Intl.Numberformat.prototype.formatToParts() method
allows locale-aware formatting of strings produced by NumberFormat
formatters.
*********************
The Intl.NumberFormat object enables language-sensitive number formatting.
*********************
The Intl.NumberFormat() constructor creates
{{jsxref("NumberFormat", "Intl.NumberFormat")}} objects that enable language-sensitive
number formatting.
*********************
The Intl.NumberFormat.prototype.resolvedOptions() method
returns a new object with properties reflecting the locale and number formatting
options computed during initialization of this {{jsxref("NumberFormat")}} object.
*********************
The Intl.NumberFormat.supportedLocalesOf() method returns
an array containing those of the provided locales that are supported in number
formatting without having to fall back to the runtime's default locale.
*********************
The Intl.PluralRules object enables plural-sensitive formatting and plural-related language rules.
*********************
The Intl.PluralRules() constructor creates
{{jsxref("PluralRules", "Intl.PluralRules")}} objects.
*********************
The Intl.PluralRules.prototype.resolvedOptions() method
returns a new object with properties reflecting the locale and plural formatting
options computed during initialization of this {{jsxref("PluralRules")}} object.
*********************
The Intl.PluralRules.prototype.select() method returns a
string indicating which plural rule to use for locale-aware formatting.
*********************
The Intl.PluralRules.supportedLocalesOf() method returns
an array containing those of the provided locales that are supported in plural
formatting without having to fall back to the runtime's default locale.
*********************
The Intl.RelativeTimeFormat.prototype.format() method formats a value and unit according to the locale and formatting options of this {{jsxref("Intl.RelativeTimeFormat")}} object.
*********************
The Intl.RelativeTimeFormat.prototype.formatToParts() method returns an {{jsxref("Array")}} of objects representing the relative time format in parts that can be used for custom locale-aware formatting.
*********************
The Intl.RelativeTimeFormat object enables language-sensitive relative time formatting.
*********************
The Intl.RelativeTimeFormat() constructor creates {{jsxref("Intl/RelativeTimeFormat", "Intl.RelativeTimeFormat")}} objects.
*********************
The Intl.RelativeTimeFormat.prototype.resolvedOptions() method returns a new object with properties reflecting the locale and relative time formatting options computed during initialization of this {{jsxref("RelativeTimeFormat")}} object.
*********************
The Intl.RelativeTimeFormat.supportedLocalesOf() method returns an array containing those of the provided locales that are supported in date and time formatting without having to fall back to the runtime's default locale.
*********************
Returns a new object with properties reflecting the locale and granularity options computed during initialization of this Intl.Segmenter object.
*********************
Getter function that segments a string according to the locale and granularity of this Intl.Segmenter object.
*********************
[Placeholder: See https://github.com/mdn/sprints/issues/3876]
*********************
[Placeholder: See https://github.com/mdn/sprints/issues/3876]
*********************
[Placeholder: See https://github.com/mdn/sprints/issues/3876]
*********************
Returns an array containing those of the provided locales that are supported without having to fall back to the runtime's default locale.
*********************
The global isFinite() function determines whether the
passed value is a finite number. If  needed, the parameter is first converted to a
number.
*********************
The isNaN() function determines whether a value is
{{jsxref("NaN")}} or not. Note, coercion inside the isNaN function has interesting rules; you may alternatively want to use
{{jsxref("Number.isNaN()")}}, as defined in ECMAScript 2015.
*********************
The JSON.stringify() method converts a JavaScript object
or value to a JSON string, optionally replacing values if a replacer function is
specified or optionally including only the specified properties if a replacer array is
specified.
*********************
The Map[@@species] accessor property returns the Map constructor.
*********************
The Map[@@toStringTag] property has an initial value of
"Map".
*********************
The clear() method removes all elements from a
Map object.
*********************
The delete() method removes the specified element from a
Map object by key.
*********************
The entries() method returns a new Iterator
object that contains the [key, value] pairs for each element in the
Map object in insertion order. In this particular case, this iterator object is also an iterable, so the for-of loop can be used.
When the protocol [Symbol.iterator] is used, it returns a function that, when invoked, returns this iterator itself.
*********************
The get() method returns a specified element from a
Map object. If the value that is associated to the provided key is an
object, then you will get a reference to that object and any change made to that object
will effectively modify it inside the Map object.
*********************
The has() method returns a boolean indicating whether an
element with the specified key exists or not.
*********************
The keys() method returns a new Iterator
object that contains the keys for each element in the Map object in
insertion order.
*********************
The Map() constructor creates {{jsxref("Map")}} objects.
*********************
The set() method adds or updates an element with a
specified key and a value to a Map object.
*********************
The size accessor property returns the number of elements in a {{jsxref("Map")}} object.
*********************
The values() method returns a new Iterator
object that contains the values for each element in the Map object in
insertion order.
*********************
The Math.acos() function returns the arccosine (in
radians) of a number, that is
*********************
The Math.acosh() function returns the hyperbolic
arc-cosine of a number, that is
*********************
The Math.asin() function returns the arcsine (in radians)
of a number, that is
*********************
The Math.asinh() function returns the hyperbolic arcsine
of a number, that is
*********************
The Math.atan() function returns the arctangent (in
radians) of a number, that is
*********************
The Math.atan2() function returns the angle in the plane
(in radians) between the
positive x-axis and the ray from (0,0) to the point (x,y), for
Math.atan2(y,x).
*********************
The Math.atanh() function returns the hyperbolic
arctangent of a number, that is
*********************
The Math.cbrt() function returns the cube root of a
number, that is
*********************
The Math.ceil() function always rounds a number up to the
next largest integer.
*********************
The Math.clz32() function returns the number of leading
zero bits in the 32-bit binary representation of a number.
*********************
The Math.cosh() function returns the hyperbolic cosine of
a number, that can be expressed using the {{jsxref("Math.E", "constant e", "", 1)}}:
*********************
The Math.E property represents Euler's number, the base of natural logarithms, e, which is approximately 2.718.
*********************
The Math.exp() function returns
ex, where x is the argument, and e is
{{jsxref("Math.E", "Euler's number (also known as Napier's constant)", "", 1)}}, the
base of the natural logarithms.
*********************
The Math.expm1() function returns
ex - 1, where x is the argument, and
{{jsxref("Math.E", "e", "", 1)}} the base of the natural logarithms.
*********************
The Math.floor() function returns the largest integer
less than or equal to a given number.
*********************
The Math.hypot() function returns the square root of the
sum of squares of its arguments, that is:
*********************
The Math.imul() function returns the result of the C-like
32-bit multiplication of the two parameters.
*********************
Math is a built-in object that has properties and methods for mathematical constants and functions. It’s not a function object.
*********************
The Math.LN10 property represents the natural logarithm of 10, approximately 2.302:
*********************
The Math.LN2 property represents the natural logarithm of 2, approximately 0.693:
*********************
The Math.log() function returns the natural logarithm
(base {{jsxref("Math.E", "e")}}) of a number, that is
*********************
The Math.log10() function returns the base 10 logarithm
of a number, that is
*********************
The Math.LOG10E property represents the base 10 logarithm of e, approximately 0.434:
*********************
The Math.log1p() function returns the natural logarithm
(base {{jsxref("Math.E", "e")}}) of 1 + a number, that is
*********************
The Math.log2() function returns the base 2 logarithm of
a number, that is
*********************
The Math.LOG2E property represents the base 2 logarithm of e, approximately 1.442:
*********************
The Math.PI property represents the ratio of the circumference of a circle to its diameter, approximately 3.14159:
*********************
The Math.pow() function returns the
base to the exponent power, as in
baseexponent.
*********************
The Math.random() function returns a floating-point,
pseudo-random number in the range 0 to less than 1 (inclusive of 0, but not 1) with
approximately uniform distribution over that range — which you can then scale to your
desired range. The implementation selects the initial seed to the random number
generation algorithm; it cannot be chosen or reset by the user.
*********************
The Math.round() function returns the value of a number
rounded to the nearest integer.
*********************
The Math.sign() function returns either a
positive or negative +/- 1, indicating the sign of a
number passed into the argument. If the number passed into Math.sign() is
0, it will return a +/- 0. Note that if the number is positive, an explicit (+) will
not be returned.
*********************
The Math.sin() function returns the sine of a number.
*********************
The Math.sinh() function returns the hyperbolic sine of a
number, that can be expressed using the {{jsxref("Math.E", "constant e", "", 1)}}:
*********************
The Math.sqrt() function returns the square root of a
number, that is
*********************
The Math.SQRT1_2 property represents the square root of 1/2 which is approximately 0.707:
*********************
The Math.SQRT2 property represents the square root of 2, approximately 1.414:
*********************
The Math.tan() function returns the tangent of a number.
*********************
The Math.tanh() function returns the hyperbolic tangent
of a number, that is
*********************
The Math.trunc() function returns the integer part of a
number by removing any fractional digits.
*********************
The global NaN property is a value representing Not-A-Number.
*********************
The value null represents the intentional absence of any object value. It
is one of JavaScript's primitive values and
is treated as falsy for boolean operations.
*********************
The Number.EPSILON property represents the difference between 1 and the smallest floating point number greater than 1.
*********************
The Number constructor contains constants and methods for working with numbers. Values of other types can be converted to numbers using the Number() function.
*********************
The Number.isInteger() method determines whether the
passed value is an integer.
*********************
The Number.isNaN() method determines whether the passed
value is {{jsxref("NaN")}} and its type is {{jsxref("Number")}}. It is a more robust
version of the original, global {{jsxref("isNaN", "isNaN()")}}.
*********************
The Number.isSafeInteger() method determines whether the
provided value is a number that is a safe integer.
*********************
The Number.MAX_SAFE_INTEGER constant represents the maximum safe integer in JavaScript (253 - 1).
*********************
The Number.MAX_VALUE property represents the maximum numeric value representable in JavaScript.
*********************
The Number.MIN_SAFE_INTEGER constant represents the minimum safe integer in JavaScript (-(253 - 1)).
*********************
The Number.MIN_VALUE property represents the smallest positive numeric value representable in JavaScript.
*********************
The Number.NaN property represents Not-A-Number. Equivalent of {{jsxref("NaN")}}.
*********************
The Number.NEGATIVE_INFINITY property represents the negative Infinity value.
*********************
The Number() constructor creates a {{jsxref("Number")}} object.
*********************
The Number.parseInt() method parses a string argument and
returns an integer of the specified radix or base.
*********************
The Number.POSITIVE_INFINITY property represents the positive Infinity value.
*********************
The toExponential() method returns a string representing
the {{jsxref("Number")}} object in exponential notation.
*********************
The toFixed() method formats a number using fixed-point
notation.
*********************
The toLocaleString() method returns a string with a
language-sensitive representation of this number.
*********************
The toPrecision() method returns a string representing
the {{jsxref("Number")}} object to the specified precision.
*********************
The toSource() method returns a string representing the
source code of the object.
*********************
The toString() method returns a string representing the
specified {{jsxref("Number")}} object.
*********************
The valueOf() method returns the wrapped primitive value
of a {{jsxref("Number")}} object.
*********************
This feature is deprecated in favor of defining getters using the object
initializer syntax or the {{jsxref("Object.defineProperty()")}} API. While this
feature is widely implemented, it is only described in the ECMAScript
specification because of legacy usage. This method should not be used since
better alternatives exist.
*********************
This feature is deprecated in favor of defining setters using the object
initializer syntax or the {{jsxref("Object.defineProperty()")}} API.
*********************
The __lookupGetter__ method returns the function bound as
a getter to the specified property.
*********************
The __lookupSetter__ method returns the function bound as
a setter to the specified property.
*********************
The constructor property returns a reference to the {{jsxref("Object")}} constructor function that created the instance object. Note that the value of this property is a reference to the function itself, not a string containing the function's name.
*********************
The Object.create() method creates a new object, using an
existing object as the prototype of the newly created object.
*********************
The Object.defineProperties() method defines new or
modifies existing properties directly on an object, returning the object.
*********************
The static method Object.defineProperty() defines a new
property directly on an object, or modifies an existing property on an object, and
returns the object.
*********************
The Object.entries() method returns an array of a given
object's own enumerable string-keyed property
[key, value] pairs, in the same order as that
provided by a {{jsxref("Statements/for...in", "for...in")}} loop. (The only important
difference is that a for...in loop enumerates properties in the prototype
chain as well). 
*********************
The Object.freeze() method freezes an
object. A frozen object can no longer be changed; freezing an object prevents new
properties from being added to it, existing properties from being removed, prevents
changing the enumerability, configurability, or writability of existing properties, and
prevents the values of existing properties from being changed. In addition, freezing an
object also prevents its prototype from being changed. freeze() returns the
same object that was passed in.
*********************
The Object.fromEntries() method transforms a list of
key-value pairs into an object.
*********************
The Object.getOwnPropertyDescriptor() method returns an
object describing the configuration of a specific property on a given object (that is,
one directly present on an object and not in the object's prototype chain). The object
returned is mutable but mutating it has no effect on the original property's
configuration.
*********************
The Object.getOwnPropertyDescriptors() method returns all
own property descriptors of a given object.
*********************
The Object.getOwnPropertyNames() method returns an array of all properties (including non-enumerable properties except for those which use Symbol) found directly in a given object.
*********************
The Object.getOwnPropertySymbols() method returns an array of all symbol properties found directly upon a given object.
*********************
The Object.getPrototypeOf() method returns the prototype
(i.e. the value of the internal [[Prototype]] property) of the specified
object.
*********************
The hasOwnProperty() method returns a boolean indicating
whether the object has the specified property as its own property (as opposed to
inheriting it).
*********************
The Object class represents one of JavaScript's data types. It is used to store various keyed collections and more complex entities. Objects can be created using the {{jsxref("Object/Object", "Object()")}} constructor or the object initializer / literal syntax.
*********************
The Object.is() method determines whether two values are
the same
value.
*********************
The Object.isExtensible() method determines if an object
is extensible (whether it can have new properties added to it).
*********************
The Object.isFrozen() determines if an object is
{{jsxref("Object.freeze()", "frozen", "", 1)}}.
*********************
The isPrototypeOf() method checks if an object exists in
another object's prototype chain.
*********************
The Object.isSealed() method determines if an object is
sealed.
*********************
The Object constructor creates an object wrapper for the
given value.
*********************
The Object.preventExtensions() method prevents new
properties from ever being added to an object (i.e. prevents future extensions to the
object).
*********************
The propertyIsEnumerable() method returns a Boolean
indicating whether the specified property is enumerable and is the object's own
property.
*********************
Warning: Changing the [[Prototype]] of an object is, by the nature of how modern JavaScript engines optimize property accesses, a very slow operation, in every browser and JavaScript engine. The effects on the performance of altering inheritance are subtle and far-flung, and are not limited to the time spent in obj.__proto__ = ... statements, but may extend to any code that has access to any object whose [[Prototype]] has been altered. If you care about performance you should avoid setting the [[Prototype]] of an object. Instead, create a new object with the desired [[Prototype]] using {{JSxRef("Object.create()")}}.
*********************
The Object.seal() method seals an object, preventing new
properties from being added to it and marking all existing properties as
non-configurable. Values of present properties can still be changed as long as they are
writable.
*********************
The Object.setPrototypeOf() method sets the prototype
(i.e., the internal [[Prototype]] property) of a specified object to
another object or {{jsxref("null")}}.
*********************
The toLocaleString() method returns a string representing
the object. This method is meant to be overridden by derived objects for locale-specific
purposes.
*********************
The toSource() method returns a string representing the
source code of the object.
*********************
The toString() method returns a string representing the
object.
*********************
The valueOf() method returns the primitive value of the
specified object.
*********************
The parseInt() function parses a string argument and
returns an integer of the specified radix (the base in mathematical numeral
systems).
*********************
The Promise.all() method takes an iterable of promises as
an input, and returns a single {{jsxref("Promise")}} that resolves to an array of the
results of the input promises. This returned promise will resolve when all of the
input's promises have resolved, or if the input iterable contains no promises. It
rejects immediately upon any of the input promises rejecting or non-promises throwing an
error, and will reject with this first rejection message / error.
*********************
The Promise.allSettled() method returns a promise that
resolves after all of the given promises have either fulfilled or rejected, with an
array of objects that each describes the outcome of each promise.
*********************
Promise.any() takes an iterable of {{JSxRef("Promise")}} objects and, as soon as one of the promises in the iterable fulfills, returns a single promise that resolves with the value from that promise. If no promises in the iterable fulfill (if all of the given promises are rejected), then the returned promise is rejected with an {{JSxRef("AggregateError")}}, a new subclass of {{JSxRef("Error")}} that groups together individual errors. Essentially, this method is the opposite of {{JSxRef("Promise.all()")}}.
*********************
The catch() method returns a {{jsxref("Promise")}} and
deals with rejected cases only. It behaves the same as calling {{jsxref("Promise.then",
"Promise.prototype.then(undefined, onRejected)")}} (in fact, calling
obj.catch(onRejected) internally calls
obj.then(undefined, onRejected)). This means that you have to provide an
onRejected function even if you want to fall back to an
undefined result value - for example obj.catch(() => {}).
*********************
The finally() method returns a {{jsxref("Promise")}}.
When the promise is settled, i.e either fulfilled or rejected, the specified callback
function is executed. This provides a way for code to be run whether the promise was
fulfilled successfully or rejected once the Promise has been dealt with.
*********************
The Promise object represents the eventual completion (or failure) of an asynchronous operation and its resulting value.
*********************
The Promise constructor is primarily used to wrap
functions that do not already support promises.
*********************
The Promise.race() method returns a promise that fulfills
or rejects as soon as one of the promises in an iterable fulfills or rejects, with the
value or reason from that promise.
*********************
The Promise.reject() method returns a
Promise object that is rejected with a given reason.
*********************
The Promise.resolve() method returns a
{{jsxref("Promise")}} object that is resolved with a given value. If the value is a
promise, that promise is returned; if the value is a thenable (i.e. has a
{{jsxref("Promise.then", "\"then\" method")}}), the returned promise will "follow" that
thenable, adopting its eventual state; otherwise the returned promise will be fulfilled
with the value. This function flattens nested layers of promise-like objects (e.g. a
promise that resolves to a promise that resolves to something) into a single layer.
*********************
The then() method returns a {{jsxref("Promise")}}. It
takes up to two arguments: callback functions for the success and failure cases of the
Promise.
*********************
The Proxy object enables you to create a proxy for another object, which can intercept and redefine fundamental operations for that object.
*********************
The handler.apply() method is a trap for a function call.
*********************
The handler.construct() method is a trap for the {{jsxref("Operators/new", "new")}} operator. In order for the new operation to be valid on the resulting Proxy object, the target used to initialize the proxy must itself have a [[Construct]] internal method (i.e. new target must be valid).
*********************
The handler.defineProperty() method is a trap for
{{jsxref("Object.defineProperty()")}}.
*********************
The handler.deleteProperty() method is a trap for the
{{jsxref("Operators/delete", "delete")}} operator.
*********************
The handler.get() method is a trap for getting a property
value.
*********************
The handler.getOwnPropertyDescriptor() method is a trap for {{jsxref("Object.getOwnPropertyDescriptor()")}}.
*********************
The handler.getPrototypeOf() method is a trap for the
[[GetPrototypeOf]] internal method.
*********************
The handler.has() method is a trap for the
{{jsxref("Operators/in", "in")}} operator.
*********************
The Proxy() constructor is used to create
{{jsxref("Proxy")}} objects.
*********************
The handler.isExtensible() method is a trap for
{{jsxref("Object.isExtensible()")}}.
*********************
The handler.ownKeys() method is a trap for
{{jsxref("Reflect.ownKeys()")}}.
*********************
The handler.preventExtensions() method is a trap for {{jsxref("Object.preventExtensions()")}}.
*********************
The handler.set() method is a trap for setting a property
value.
*********************
The handler.setPrototypeOf() method is a trap for
{{jsxref("Object.setPrototypeOf()")}}.
*********************
The Proxy.revocable() method is used to create a
revocable {{jsxref("Proxy")}} object.
*********************
The ReferenceError object represents an error when a non-existent variable is referenced.
*********************
The ReferenceError object represents an error when a
non-existent variable is referenced.
*********************
The static Reflect.apply() method calls a target function
with arguments as specified.
*********************
The {{jsxref("Reflect")}} object, introduced in ES2015, is a built-in object that provides methods to interface with JavaScript objects. Some of the static functions that exist on Reflect also correspond to methods available on {{jsxref("Object")}}, which predates ES2015. Although some of the methods appear to be similar in their behavior, there are often subtle differences between them.
*********************
The static Reflect.construct() method acts like the
{{jsxref("Operators/new", "new")}} operator, but as a function. It is equivalent to
calling new target(...args). It gives also the added option to specify a
different prototype.
*********************
The static Reflect.defineProperty() method is like
{{jsxref("Object.defineProperty()")}} but returns a {{jsxref("Boolean")}}.
*********************
The static
Reflect.deleteProperty()
method allows to delete properties. It is like the delete
operator as a function.
*********************
The static Reflect.get() method works like getting a
property from an object (target[propertyKey]) as a function.
*********************
The static Reflect.getPrototypeOf() method is almost the
same method as {{jsxref("Object.getPrototypeOf()")}}. It returns the prototype (i.e. the
value of the internal [[Prototype]] property) of the specified object.
*********************
The static Reflect.has() method works like the in operator
as a function.
*********************
The static Reflect.ownKeys() method returns an array of
the target object's own property keys.
*********************
The static Reflect.set() method works like setting a
property on an object.
*********************
The [@@match]() method retrieves the matches when
matching a string against a regular expression.
*********************
The [@@matchAll] method returns all matches of the
regular expression against a string.
*********************
The [@@replace]() method replaces some or all matches of
a this pattern in a string by a replacement, and returns the
result of the replacement as a new string. The replacement can be a string
or a function to be called for each match.
*********************
The [@@search]() method executes a search for a match
between a this regular expression and a string.
*********************
The RegExp[@@species] accessor property returns the RegExp constructor.
*********************
The [@@split]() method splits a {{jsxref("String")}}
object into an array of strings by separating the string into substrings.
*********************
The deprecated compile()
method is used to (re-)compile a regular expression during execution of a script. It is
basically the same as the RegExp constructor.
*********************
The dotAll property indicates whether or not the "s" flag is used with the regular expression. dotAll is a read-only property of an individual regular expression instance.
*********************
The flags property returns a string consisting of the flags of the current regular expression object.
*********************
The global property indicates whether or not the "g" flag is used with the regular expression. global is a read-only property of an individual regular expression instance.
*********************
The hasIndices property indicates whether or not the "d" flag is used with the regular expression. hasIndices is a read-only property of an individual regular expression instance.
*********************
The ignoreCase property indicates whether or not the "i" flag is used with the regular expression. ignoreCase is a read-only property of an individual regular expression instance.
*********************
The RegExp object is used for matching text with a pattern.
*********************
The non-standard input property is a static property of regular expressions that contains the string against which a regular expression is matched. RegExp.$_ is an alias for this property.
*********************
lastIndex is a read/write integer property of {{jsXref("RegExp")}} instances that specifies the index at which to start the next match.
*********************
The non-standard lastMatch property is a static and read-only property of regular expressions that contains the last matched characters. RegExp.$& is an alias for this property.
*********************
The non-standard lastParen property is a static and read-only property of regular expressions that contains the last parenthesized substring match, if any. RegExp.$+ is an alias for this property.
*********************
The non-standard leftContext property is a static and read-only property of regular expressions that contains the substring preceding the most recent match. RegExp.$` is an alias for this property.
*********************
The multiline property indicates whether or not the "m" flag is used with the regular expression. multiline is a read-only property of an individual regular expression instance.
*********************
The legacy RegExp $1, $2, $3, $4, $5, $6, $7, $8, $9 properties are static and read-only properties of regular expressions that contain parenthesized substring matches.
*********************
The RegExp constructor creates a regular expression
object for matching text with a pattern.
*********************
The non-standard rightContext property is a static and read-only property of regular expressions that contains the substring following the most recent match. RegExp.$' is an alias for this property.
*********************
The source property returns a {{jsxref("String")}} containing the source text of the regexp object, and it doesn't contain the two forward slashes on both sides and any flags.
*********************
The sticky property reflects whether or not the search is sticky (searches in strings only from the index indicated by the {{jsxref("RegExp.lastIndex", "lastIndex")}} property of this regular expression). sticky is a read-only property of an individual regular expression object.
*********************
The test() method executes a search for a match between a
regular expression and a specified string. Returns true or
false.
*********************
The toSource() method returns a string representing the
source code of the object.
*********************
The toString() method returns a string representing the
regular expression.
*********************
The unicode property indicates whether or not the "u" flag is used with a regular expression. unicode is a read-only property of an individual regular expression instance.
*********************
The initial value of the @@iterator property is the same
function object as the initial value of the {{jsxref("Set.prototype.values()",
"values")}} property.
*********************
The Set[Symbol.species] accessor property returns the Set constructor.
*********************
The add() method appends a new element with a specified
value to the end of a Set object.
*********************
The clear() method removes all elements from a
Set object.
*********************
The delete() method removes a specified value from a
Set object, if it is in the set.
*********************
The entries() method returns a new Iterator object
that contains an array of [value, value] for each element
in the Set object, in insertion order. For Set objects there
is no key like in Map objects. However, to keep the API
similar to the Map object, each entry has the same value for its
key and value here, so that an array [value, value] is
returned.
*********************
The forEach() method executes a provided function once
for each value in the Set object, in insertion order.
*********************
The has() method returns a boolean indicating whether an
element with the specified value exists in a Set object or not.
*********************
The size accessor property returns the number of (unique) elements in a {{jsxref("Set")}} object.
*********************
The values() method returns a new iterator object that
contains the values for each element in the Set object in insertion order.
*********************
The byteLength accessor property represents the length of an {{jsxref("SharedArrayBuffer")}} in bytes.
*********************
The SharedArrayBuffer object is used to represent a generic, fixed-length raw binary data buffer, similar to the {{jsxref("ArrayBuffer")}} object, but in a way that they can be used to create views on shared memory. Unlike an ArrayBuffer, a SharedArrayBuffer cannot become detached.
*********************
There is standardization work ongoing that enables developers to create SharedArrayBuffer objects again, but changes are needed in order to be use these across threads (i.e., postMessage() for SharedArrayBuffer objects throws by default). These changes provide further isolation between sites and help reduce the impact of attacks with high-resolution timers, which can be created with shared memory.
*********************
Note that SharedArrayBuffer was disabled by default in all major
browsers on 5 January, 2018 in response to Spectre. Chrome re-enabled it in
v67 on platforms where its site-isolation feature is enabled to protect against
Spectre-style vulnerabilities.
*********************
The SharedArrayBuffer.prototype.slice() method returns a
new {{jsxref("SharedArrayBuffer")}} whose contents are a copy of this
SharedArrayBuffer's bytes from begin, inclusive, up to end, exclusive. If
either begin or end is negative, it refers to an index from the end of the array, as
opposed to from the beginning. This method has the same algorithm as
{{jsxref("Array.prototype.slice()")}}.
*********************
The [@@iterator]() method returns a new iterator object
that iterates over the code points of a String value, returning each code point as a
String value.
*********************
The anchor() method creates a string beginning with an
<a name="..."> start tag, then some text, and then an
</a> end tag.
*********************
The at() method takes an integer value and returns a new {{jsxref('String')}} consisting of the single UTF-16 code unit located at the specified offset. This method allows for positive and negative integers. Negative integers count back from the last string character.
*********************
The big() method creates a {{HTMLElement("big")}} HTML
element that causes a string to be displayed in a big font.
*********************
The blink() method creates a {{HTMLElement("blink")}}
HTML element that causes a string to blink.
*********************
The bold() method creates a {{HTMLElement("b")}} HTML
element that causes a string to be displayed as bold.
*********************
The codePointAt() method returns a non-negative integer
that is the UTF-16 code point value.
*********************
The fixed() method creates a {{HTMLElement("tt")}} HTML
element that causes a string to be displayed in fixed-pitch font.
*********************
The fontcolor() method creates a {{HTMLElement("font")}}
HTML element that causes a string to be displayed in the specified font color.
*********************
The fontsize() method creates a {{HTMLElement("font")}}
HTML element that causes a string to be displayed in the specified font size.
*********************
The static String.fromCharCode() method returns a string
created from the specified sequence of UTF-16 code units.
*********************
The static String.fromCodePoint() method returns a string
created by using the specified sequence of code points.
*********************
The includes() method performs a case-sensitive search to determine whether one string may
be found within another string, returning true or false as
appropriate.
*********************
The String object is used to represent and manipulate a
sequence of characters.
*********************
The italics() method creates an {{HTMLElement("i")}} HTML
element that causes a string to be italic.
*********************
The lastIndexOf() method returns the index within the
calling {{jsxref("String")}} object of the last occurrence of the specified value,
searching backwards from fromIndex. Returns -1 if the value is
not found.
*********************
The link() method creates a string representing the code
for an {{HTMLElement("a")}} HTML element to be used as a hypertext link to another URL.
*********************
The localeCompare() method returns a number indicating
whether a reference string comes before, or after, or is the same as the given string in
sort order.
*********************
The match() method retrieves the result of matching a
string against a regular expression.
*********************
The matchAll() method returns an iterator of all results
matching a string against a regular
expression, including capturing
groups.
*********************
The normalize() method returns the Unicode Normalization
Form of the string.
*********************
The padEnd() method pads the current string with a given
string (repeated, if needed) so that the resulting string reaches a given length. The
padding is applied from the end of the current string.
*********************
The repeat() method constructs and returns a new string
which contains the specified number of copies of the string on which it was called,
concatenated together.
*********************
The search() method executes a search for a match between
a regular expression and this {{jsxref("String")}} object.
*********************
The slice() method extracts a section of a string and
returns it as a new string, without modifying the original string.
*********************
The small() method creates a {{HTMLElement("small")}}
HTML element that causes a string to be displayed in a small font.
*********************
The strike() method creates a {{HTMLElement("strike")}}
HTML element that causes a string to be displayed as struck-out text.
*********************
The String constructor is used to create a new
{{jsxref("String")}} object. When called instead as a function, it performs type
conversion to a {{Glossary("string", "primitive string")}}, which is usually more
useful.
*********************
The sub() method creates a {{HTMLElement("sub")}} HTML
element that causes a string to be displayed as subscript.
*********************
The substring() method returns the part of the
string between the start and end indexes, or to the end of the string.
*********************
The sup() method creates a {{HTMLElement("sup")}} HTML
element that causes a string to be displayed as superscript.
*********************
The toLocaleLowerCase() method returns the calling string
value converted to lower case, according to any locale-specific case mappings.
*********************
The toLocaleUpperCase() method returns the calling string
value converted to upper case, according to any locale-specific case mappings.
*********************
The toLowerCase() method returns the calling string value
converted to lower case.
*********************
The toSource() method returns a string representing the
source code of the object.
*********************
The toString() method returns a string representing the
specified object.
*********************
The toUpperCase() method returns the calling string value
converted to uppercase (the value will be converted to a string if it isn't one).
*********************
The trim() method removes whitespace from both ends of a
string. Whitespace in this context is all the whitespace characters (space, tab,
no-break space, etc.) and all the line terminator characters (LF, CR, etc.).
*********************
The trimEnd() method removes whitespace from the end of a
string. trimRight() is an alias of this method.
*********************
The trimStart() method removes whitespace from the
beginning of a string. trimLeft() is an alias of this method.
*********************
The valueOf() method returns the primitive value of a
{{jsxref("String")}} object.
*********************
The [@@toPrimitive]() method converts a Symbol object to
a primitive value.
*********************
The Symbol.asyncIterator well-known symbol specifies the default AsyncIterator for an object. If this property is set on an object, it is an async iterable and can be used in a for await...of loop.
*********************
The read-only description property is a string returning the optional description of {{JSxRef("Symbol")}} objects.
*********************
The Symbol.for(key) method searches for existing symbols
in a runtime-wide symbol registry with the given key and returns it if found. Otherwise
a new symbol gets created in the global symbol registry with this key.
*********************
Symbol is a built-in object whose constructor returns a symbol primitive — also called a Symbol value or just a Symbol — that’s guaranteed to be unique. Symbols are often used to add unique property keys to an object that won’t collide with keys any other code might add to the object, and which are hidden from any mechanisms other code will typically use to access the object. That enables a form of weak {{Glossary("encapsulation")}}, or a weak form of information hiding.
*********************
The Symbol.isConcatSpreadable well-known symbol is used to configure if an object should be flattened to its array elements when using the {{jsxref("Array.prototype.concat()")}} method.
*********************
The well-known Symbol.iterator symbol specifies the default iterator for an object. Used by for...of.
*********************
The Symbol.keyFor(sym) method retrieves a shared symbol
key from the global symbol registry for the given symbol.
*********************
The Symbol.match well-known symbol specifies the matching of a regular expression against a string. This function is called by the {{jsxref("String.prototype.match()")}} method.
*********************
The Symbol.matchAll well-known symbol returns an iterator, that yields matches of the regular expression against a string. This function is called by the {{jsxref("String.prototype.matchAll()")}} method.
*********************
The Symbol.replace well-known symbol specifies the method that replaces matched substrings of a string. This function is called by the {{jsxref("String.prototype.replace()")}} method.
*********************
The Symbol.search well-known symbol specifies the method that returns the index within a string that matches the regular expression. This function is called by the {{jsxref("String.prototype.search()")}} method.
*********************
The well-known symbol Symbol.species specifies a function-valued property that the constructor function uses to create derived objects.
*********************
The Symbol.split well-known symbol specifies the method that splits a string at the indices that match a regular expression. This function is called by the {{jsxref("String.prototype.split()")}} method.
*********************
The Symbol() constructor returns a value of type symbol,
but is incomplete as a constructor because it does not support the syntax
"new Symbol()" and it is not intended to be subclassed. It may be used as
the value of an
extends
clause of a class definition but a
super
call to it will cause an exception.
*********************
The Symbol.toPrimitive is a symbol that specifies a function valued property that is called to convert an object to a corresponding primitive value.
*********************
The toSource() method returns a string representing the
source code of the object.
*********************
The toString() method returns a string representing the specified {{jsxref("Symbol")}} object.
*********************
The Symbol.toStringTag well-known symbol is a string valued property that is used in the creation of the default string description of an object. It is accessed internally by the {{jsxref("Object.prototype.toString()")}} method.
*********************
The Symbol.unscopables well-known symbol is used to specify an object value of whose own and inherited property names are excluded from the with environment bindings of the associated object.
*********************
The valueOf() method returns the primitive value of a Symbol object.
*********************
The SyntaxError object represents an error when trying to interpret syntactically invalid code. It is thrown when the JavaScript engine encounters tokens or token order that does not conform to the syntax of the language when parsing code.
*********************
The SyntaxError constructor creates a new error object
that represents an error when trying to interpret syntactically invalid code.
*********************
The initial value of the @@iterator property is the same function object
as the initial value of the {{jsxref("TypedArray.prototype.values()", "values")}}
property.
*********************
The TypedArray[@@species] accessor property returns the constructor of a typed array.
*********************
The at() method takes an integer value and returns the item at that index, allowing for positive and negative integers. Negative integers count back from the last item in the array.
*********************
The buffer accessor property represents the {{jsxref("ArrayBuffer")}} referenced by a TypedArray at construction time.
*********************
The byteLength accessor property represents the length (in bytes) of a typed array.
*********************
The byteOffset accessor property represents the offset (in bytes) of a typed array from the start of its {{jsxref("ArrayBuffer")}}.
*********************
The TypedArray.BYTES_PER_ELEMENT property represents the size in bytes of each element in an typed array.
*********************
The copyWithin() method copies the sequence of array
elements within the array to the position starting at target.
The copy is taken from the index positions of the second and third arguments
start and end. The
end argument is optional and defaults to the length of the
array. This method has the same algorithm as {{jsxref("Array.prototype.copyWithin")}}.
TypedArray is one of the typed
array types here.
*********************
The entries() method returns a new {{jsxref("Array")}}
iterator object that contains the key/value pairs for each index in the array.
*********************
The every() method tests whether all elements in the
typed array pass the test implemented by the provided function. This method has the same
algorithm as {{jsxref("Array.prototype.every()")}}. TypedArray is one
of the typed
array types here.
*********************
The fill() method fills all the elements of a typed array
from a start index to an end index with a static value. This method has the same
algorithm as {{jsxref("Array.prototype.fill()")}}. TypedArray is one of the typed
array types here.
*********************
The filter() method creates a new typed array with all
elements that pass the test implemented by the provided function. This method has the
same algorithm as {{jsxref("Array.prototype.filter()")}}. TypedArray is one of
the typed
array types here.
*********************
The find() method returns a value of an element in the
typed array, if it satisfies the provided testing function. Otherwise
{{jsxref("undefined")}} is returned. TypedArray is one of the typed
array types here.
*********************
The findIndex() method returns an index
in the typed array, if an element in the typed array satisfies the provided testing
function. Otherwise -1 is returned.
*********************
The forEach() method executes a provided function once
per array element. This method has the same algorithm as
{{jsxref("Array.prototype.forEach()")}}. TypedArray is one of the typed
array types here.
*********************
The TypedArray.from() method creates a new typed
array from an array-like or iterable object. This method is nearly the same as
{{jsxref("Array.from()")}}.
*********************
The includes() method determines whether a typed array
includes a certain element, returning true or false as
appropriate. This method has the same algorithm as
{{jsxref("Array.prototype.includes()")}}. TypedArray is one of the typed
array types here.
*********************
A TypedArray object describes an array-like view of an
underlying binary data
buffer. There is no global property named TypedArray, nor is there a
directly visible TypedArray constructor. Instead, there are a number of
different global properties, whose values are typed array constructors for specific
element types, listed below. On the following pages you will find common properties and
methods that can be used with any typed array containing elements of any type.
*********************
The indexOf() method returns the first index at which a
given element can be found in the typed array, or -1 if it is not present. This method
has the same algorithm as {{jsxref("Array.prototype.indexOf()")}}. TypedArray
is one of the typed
array types here.
*********************
The join() method joins all elements of an array into a
string. This method has the same algorithm as {{jsxref("Array.prototype.join()")}}.
TypedArray is one of the typed
array types here.
*********************
The keys() method returns a new array iterator object
that contains the keys for each index in the array.
*********************
The lastIndexOf() method returns the last index at which
a given element can be found in the typed array, or -1 if it is not present. The typed
array is searched backwards, starting at fromIndex. This method has the
same algorithm as {{jsxref("Array.prototype.lastIndexOf()")}}. TypedArray is
one of the typed
array types here.
*********************
The length accessor property represents the length (in elements) of a typed array.
*********************
The map() method creates a new typed array with the
results of calling a provided function on every element in this typed array. This method
has the same algorithm as {{jsxref("Array.prototype.map()")}}.
TypedArray is one of the typed
array types here.
*********************
The TypedArray.name property represents a string value of the typed array constructor name.
*********************
The TypedArray.of() method creates a new typed
array from a variable number of arguments. This method is nearly the same as
{{jsxref("Array.of()")}}.
*********************
The reduce() method applies a function against an
accumulator and each value of the typed array (from left-to-right) has to reduce it to a
single value. This method has the same algorithm as
{{jsxref("Array.prototype.reduce()")}}. TypedArray is one of the typed
array types here.
*********************
The reduceRight() method applies a function against an
accumulator and each value of the typed array (from right-to-left) has to reduce it to a
single value. This method has the same algorithm as
{{jsxref("Array.prototype.reduceRight()")}}. TypedArray is one of the typed
array types here.
*********************
The reverse() method reverses a typed array in place. The
first typed array element becomes the last and the last becomes the first. This method
has the same algorithm as {{jsxref("Array.prototype.reverse()")}}. TypedArray
is one of the typed
array types here.
*********************
The set() method stores multiple values in the typed
array, reading input values from a specified array.
*********************
The slice() method returns a new typed array (with a new
underlying buffer), that contains a copy of a portion of the original typed array. This
method has the same algorithm as {{jsxref("Array.prototype.slice()")}}.
TypedArray is one of the typed
array types here.
*********************
The some() method tests whether some element in the typed
array passes the test implemented by the provided function. This method has the same
algorithm as {{jsxref("Array.prototype.some()")}}. TypedArray is one
of the typed
array types here.
*********************
The sort() method sorts the elements of a typed array
numerically in place and returns the typed array. This method has the same
algorithm as {{jsxref("Array.prototype.sort()")}}, except that sorts the values
numerically instead of as strings. TypedArray is one of the typed
array types here.
*********************
The subarray() method returns a new TypedArray
on the same {{jsxref("ArrayBuffer")}} store and with the same element types as for this
TypedArray object. The begin offset is inclusive and the end
offset is exclusive. TypedArray is one of the typed
array types.
*********************
The toLocaleString() method returns a string representing
the elements of the typed array. The elements are converted to strings and are separated
by a locale-specific string (such as a comma “,”). This method has the same algorithm as
{{jsxref("Array.prototype.toLocaleString()")}} and, as the typed array elements are
numbers, the same algorithm as {{jsxref("Number.prototype.toLocaleString()")}} applies
for each element. TypedArray is one of the typed
array types here.
*********************
The toString() method returns a string representing the
specified array and its elements. This method has the same algorithm as
{{jsxref("Array.prototype.toString()")}}. TypedArray is one of the typed
array types here.
*********************
The values() method returns a new array iterator object
that contains the values for each index in the array.
*********************
The TypeError object represents an error when an operation could not be performed, typically (but not exclusively) when a value is not of the expected type.
*********************
The TypeError() constructor creates a new error when an
operation could not be performed, typically (but not exclusively) when a value is not of
the expected type.
*********************
The Uint16Array typed array represents an array of 16-bit unsigned integers in the platform byte order. If control over byte order is needed, use {{jsxref("DataView")}} instead. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).
*********************
The Uint16Array() typed array constructor creates an
array of 16-bit unsigned integers in the platform byte order.
*********************
The Uint32Array typed array represents an array of 32-bit unsigned integers in the platform byte order. If control over byte order is needed, use {{jsxref("DataView")}} instead. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).
*********************
The Uint32Array() typed array constructor creates an
array of 32-bit unsigned integers in the platform byte order. If control over byte order
is needed, use {{jsxref("DataView")}} instead. The contents are initialized to
0. Once established, you can reference elements in the array using the
object's methods, or using standard array index syntax (that is, using bracket
notation).
*********************
The Uint8Array typed array represents an array of 8-bit unsigned integers. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).
*********************
The Uint8Array() constructor creates a typed array of
8-bit unsigned integers. The contents are initialized to 0. Once
established, you can reference elements in the array using the object's methods, or
using standard array index syntax (that is, using bracket notation).
*********************
The Uint8ClampedArray typed array represents an array of 8-bit unsigned integers clamped to 0-255; if you specified a value that is out of the range of [0,255], 0 or 255 will be set instead; if you specify a non-integer, the nearest integer will be set. The contents are initialized to 0. Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).
*********************
The Uint8ClampedArray() constructor creates a typed array
of 8-bit unsigned integers clamped to 0-255; if you specified a value that is out of the
range of [0,255], 0 or 255 will be set instead; if you specify a non-integer, the
nearest integer will be set. The contents are initialized to 0. Once
established, you can reference elements in the array using the object's methods, or
using standard array index syntax (that is, using bracket notation).
*********************
The global undefined property represents the primitive
value {{Glossary("Undefined", "undefined")}}. It is one of JavaScript's
{{Glossary("Primitive", "primitive types")}}.
*********************
The unescape() function computes a new string in which
hexadecimal escape sequences are replaced with the character that it represents. The
escape sequences might be introduced by a function like {{jsxref("escape")}}. Usually,
{{jsxref("decodeURI")}} or {{jsxref("decodeURIComponent")}} are preferred over
unescape.
*********************
The uneval() function creates a string representation of
the source code of an Object.
*********************
The URIError object represents an error when a global URI handling function was used in a wrong way.
*********************
The URIError() constructor creates an error when a global
URI handling function was used in a wrong way.
*********************
The clear() method used to remove all elements from a
WeakMap object, but is no longer part of ECMAScript and its
implementations.
*********************
The delete() method removes the specified element from a
{{jsxref("WeakMap")}} object.
*********************
The get() method returns a specified element from a
WeakMap object.
*********************
The has() method returns a boolean indicating whether an
element with the specified key exists in the WeakMap object or not.
*********************
The set() method adds a new element with a specified key
and value to a WeakMap object.
*********************
The WeakMap() constructor creates WeakMap
objects which are a collections of key/value pairs in which the keys are weakly
referenced. The keys must be objects and the values can be arbitrary values.
*********************
The deref method returns the {{jsxref("WeakRef")}} instance's target
object, or undefined if the target object has been garbage-collected.
*********************
A WeakRef object lets you hold a weak reference to another object, without preventing that object from getting garbage-collected.
*********************
The WeakRef constructor creates a {{jsxref("WeakRef")}}
object referring to a given target object.
*********************
The add() method appends a new object to the end of a
WeakSet object.
*********************
The clear() method used to remove all elements from a
WeakSet object, but is no longer part of ECMAScript and its
implementations.
*********************
The delete() method removes the specified element from a
WeakSet object.
*********************
The has() method returns a boolean indicating whether an
object exists in a WeakSet or not.
*********************
The WeakSet object lets you store weakly held objects in a collection.
*********************
The WeakSet constructor lets you create
WeakSet objects that store weakly held objects in a collection.
*********************
The WebAssembly.compile() function compiles WebAssembly
binary code into a {{jsxref("WebAssembly.Module")}} object. This function is useful if
it is necessary to a compile a module before it can be instantiated (otherwise, the
{{jsxref("WebAssembly.instantiate()")}} function should be used).
*********************
The WebAssembly.CompileError() constructor creates a new
WebAssembly CompileError object, which indicates an error during
WebAssembly decoding or validation.
*********************
The WebAssembly.CompileError object indicates an error during WebAssembly decoding or validation.
*********************
The WebAssembly.compileStreaming() function compiles a
{{jsxref("WebAssembly.Module")}} directly from a streamed underlying source.  This
function is useful if it is necessary to a compile a module before it can be
instantiated (otherwise, the {{jsxref("WebAssembly.instantiateStreaming()")}} function
should be used).
*********************
A WebAssembly.Global() constructor creates a new
Global object representing a global variable instance, accessible from both
JavaScript and importable/exportable across one or more {{jsxref("WebAssembly.Module")}}
instances. This allows dynamic linking of multiple modules.
*********************
A WebAssembly.Global object represents a global variable instance, accessible from both JavaScript and importable/exportable across one or more {{jsxref("WebAssembly.Module")}} instances. This allows dynamic linking of multiple modules.
*********************
The WebAssembly JavaScript object acts as the namespace for all WebAssembly-related functionality.
*********************
The exports readonly property of the
{{jsxref("WebAssembly.Instance")}} object prototype returns an object containing as its
members all the functions exported from the WebAssembly module instance, to allow them
to be accessed and used by JavaScript.
*********************
A WebAssembly.Instance object is a stateful, executable instance of a {{jsxref("WebAssembly.Module")}}. Instance objects contain all the Exported WebAssembly functions that allow calling into WebAssembly code from JavaScript.
*********************
The WebAssembly.Instance() constructor creates a new
Instance object which is a stateful, executable instance of a
{{jsxref("WebAssembly.Module")}}.
*********************
The WebAssembly.instantiate() function allows you to
compile and instantiate WebAssembly code. This function has two overloads:
*********************
The WebAssembly.instantiateStreaming() function compiles
and instantiates a WebAssembly module directly from a streamed underlying source. This
is the most efficient, optimized way to load wasm code.
*********************
The WebAssembly.LinkError object indicates an error during module instantiation (besides traps from the start function).
*********************
The WebAssembly.LinkError() constructor creates a new
WebAssembly LinkError object, which indicates an error during module
instantiation (besides traps
from the start function).
*********************
The buffer prototype property of the {{jsxref("WebAssembly.Memory")}} object returns the buffer contained in the memory.
*********************
The grow() protoype method of the
Memory
object increases the size of the memory instance by a specified number of WebAssembly
pages.
*********************
The WebAssembly.Memory object is a resizable {{jsxref("ArrayBuffer")}} or SharedArrayBuffer that holds the raw bytes of memory accessed by a WebAssembly Instance.
*********************
The WebAssembly.Memory() constructor creates a new
Memory object whose {{jsxref("WebAssembly/Memory/buffer","buffer")}}
property is a resizable
ArrayBuffer
or SharedArrayBuffer that holds the raw bytes of memory accessed by a
WebAssembly Instance.
*********************
The WebAssembly.customSections() function returns a copy
of the contents of all custom sections in the given module with the given string name.
*********************
The WebAssembly.Module.exports() function returns an
array containing descriptions of all the declared exports of the given
Module.
*********************
The WebAssembly.imports() function returns an array
containing descriptions of all the declared imports of the given Module.
*********************
A WebAssembly.Module() constructor creates a new Module
object containing stateless WebAssembly code that has already been compiled by the
browser and can be efficiently shared
with Workers, and instantiated multiple times.
*********************
The WebAssembly.RuntimeError object is the error type that is thrown whenever WebAssembly specifies a trap.
*********************
The WebAssembly.RuntimeError() constructor creates a new
WebAssembly RuntimeError object — the type that is thrown whenever
WebAssembly specifies a trap.
*********************
The get() prototype method of
the {{jsxref("WebAssembly.Table()")}} object retrieves a function reference stored at a
given index.
*********************
The grow() prototype method of
the {{jsxref("WebAssembly.Table")}} object increases the size of the Table instance by a
specified number of elements.
*********************
The WebAssembly.Table() object is a JavaScript wrapper object — an array-like structure representing a WebAssembly Table, which stores function references. A table created by JavaScript or in WebAssembly code will be accessible and mutable from both JavaScript and WebAssembly.
*********************
The length prototype property of the
{{jsxref("WebAssembly.Table")}} object returns the length of the table, i.e. the number
of elements in the table.
*********************
The set() prototype method of
the {{jsxref("WebAssembly.Table")}} object mutates a reference stored at a given index
to a different value.
*********************
The WebAssembly.Table() constructor creates a new
Table object of the given size and element type.
*********************
The WebAssembly.validate() function validates a given typed array of WebAssembly binary
code, returning whether the bytes form a valid wasm module (true) or not
(false).
*********************
This part of the JavaScript section on MDN serves as a repository of facts about the JavaScript language. Read more about this reference.
*********************
As a couple of additions to ECMAScript 2015, Iteration protocols aren't new built-ins or syntax, but protocols. These protocols can be implemented by any object by following some conventions.
*********************
This page describes JavaScript's lexical grammar. The source text of ECMAScript scripts gets scanned from left to right and is converted into a sequence of input elements which are tokens, control characters, line terminators, comments or white space. ECMAScript also defines certain keywords and literals and has rules for automatic insertion of semicolons to end statements.
*********************
The addition operator (+) produces the sum of numeric operands or string
concatenation.
*********************
The addition assignment operator (+=) adds the value of the right operand
to a variable and assigns the result to the variable. The types of the two operands
determine the behavior of the addition assignment operator. Addition or concatenation is
possible.
*********************
The simple assignment operator (=) is used to assign a value to a
variable. The assignment operation evaluates to the assigned value. Chaining the
assignment operator is possible in order to assign a single value to multiple variables
*********************
The async function keyword can be used to define
async functions inside expressions.
*********************
The await operator is used to wait for a {{jsxref("Promise")}}. It can only be used inside an {{jsxref("Statements/async_function", "async function")}} within regular JavaScript code; however it can be used on its own with JavaScript modules.
*********************
The bitwise AND operator (&) returns a 1 in each bit
position for which the corresponding bits of both operands are 1s.
*********************
The bitwise AND assignment operator (&=) uses the binary
representation of both operands, does a bitwise AND operation on them and assigns the
result to the variable.
*********************
The bitwise NOT operator (~) inverts the bits of its operand.
*********************
The bitwise OR operator (|) returns a 1 in each bit position
for which the corresponding bits of either or both operands are 1s.
*********************
The bitwise OR assignment operator (|=) uses the binary representation of
both operands, does a bitwise OR operation on them and assigns the result to the
variable.
*********************
The bitwise XOR operator (^) returns a 1 in each bit position
for which the corresponding bits of either but not both operands are 1s.
*********************
The bitwise XOR assignment operator (^=) uses the binary representation of
both operands, does a bitwise XOR operation on them and assigns the result to the
variable.
*********************
The comma operator (,) evaluates each of
its operands (from left to right) and returns the value of the last operand. This lets
you create a compound expression in which multiple expressions are evaluated, with the
compound expression's final value being the value of the rightmost of its member
expressions. This is commonly used to provide multiple parameters to a
for loop.
*********************
The decrement operator (--) decrements (subtracts one from) its operand
and returns a value.
*********************
The destructuring assignment syntax is a JavaScript expression that makes it possible to unpack values from arrays, or properties from objects, into distinct variables.
*********************
The division operator (/) produces the quotient of its operands where the
left operand is the dividend and the right operand is the divisor.
*********************
The division assignment operator (/=) divides a variable by the value of
the right operand and assigns the result to the variable.
*********************
The equality operator (==) checks whether its two operands are equal,
returning a Boolean result. Unlike the strict
equality operator, it attempts to convert and compare operands that are of
different types.
*********************
The exponentiation operator (**) returns the result of raising the first
operand to the power of the second operand. It is equivalent to Math.pow,
except it also accepts BigInts as operands.
*********************
The exponentiation assignment operator (**=) raises the value of a
variable to the power of the right operand.
*********************
The function keyword can be used to define a function
inside an expression.
*********************
The function* keyword can be used to define a generator
function inside an expression.
*********************
The greater than operator (>) returns true if the left
operand is greater than the right operand, and false otherwise.
*********************
The greater than or equal operator (>=) returns true if
the left operand is greater than or equal to the right operand, and false
otherwise.
*********************
The grouping operator ( ) controls the precedence of evaluation in
expressions.
*********************
The increment operator (++) increments (adds one to) its operand and
returns a value.
*********************
This chapter documents all the JavaScript language operators, expressions and keywords.
*********************
The inequality operator (!=) checks whether its two operands are not
equal, returning a Boolean result. Unlike the strict
inequality operator, it attempts to convert and compare operands that are of
different types.
*********************
The instanceof operator tests to see if the
prototype property of a constructor appears anywhere in the prototype chain
of an object. The return value is a boolean value. 
*********************
The left shift operator (<<) shifts the first operand the specified number of bits to the left. Excess bits shifted off to the left are discarded. Zero bits are shifted in from the right.
*********************
The left shift assignment operator (<<=) moves the specified amount of bits to the left and assigns the result to the variable.
*********************
The less than operator (<) returns true if the left operand is less than the right operand, and false otherwise.
*********************
The less than or equal operator (<=) returns true if the left operand is less than or equal to the right operand, and false otherwise.
*********************
The logical AND (&&) operator (logical conjunction) for a set of
operands is true if and only if all of its operands are true. It is typically used with
{{jsxref("Boolean")}} (logical) values. When it is, it returns a Boolean value. However,
the && operator actually returns the value of one of the specified
operands, so if this operator is used with non-Boolean values, it will return a
non-Boolean value.
*********************
The logical AND assignment (x &&= y) operator only assigns if
x is {{Glossary("truthy")}}.
*********************
The logical NOT (!) operator (logical complement, negation) takes truth to
falsity and vice versa. It is typically used with {{jsxref("Boolean")}} (logical)
values. When used with non-Boolean values, it returns false if its single
operand can be converted to true; otherwise, returns true.
*********************
The logical nullish assignment (x ??= y) operator only assigns if
x is {{Glossary("nullish")}} (null or undefined).
*********************
The logical OR (||) operator (logical disjunction) for a set of operands
is true if and only if one or more of its operands is true. It is typically used with
{{jsxref("Boolean")}} (logical) values. When it is, it returns a Boolean value. However,
the || operator actually returns the value of one of the specified
operands, so if this operator is used with non-Boolean values, it will return a
non-Boolean value.
*********************
The logical OR assignment (x ||= y) operator only assigns if
x is {{Glossary("falsy")}}.
*********************
The multiplication operator (*) produces the product of the operands.
*********************
The multiplication assignment operator (*=) multiplies a variable by the
value of the right operand and assigns the result to the variable.
*********************
The new.target pseudo-property lets you detect whether a
function or constructor was called using the new operator. In
constructors and functions invoked using the new operator,
new.target returns a reference to the constructor or function. In normal
function calls, new.target is {{jsxref("undefined")}}.
*********************
The nullish coalescing operator (??) is a logical
operator that returns its right-hand side operand when its left-hand side operand is
{{jsxref("null")}} or {{jsxref("undefined")}}, and otherwise returns its left-hand side
operand.
*********************
Objects can be initialized using new Object(), Object.create(), or using the literal notation (initializer notation). An object initializer is a comma-delimited list of zero or more pairs of property names and associated values of an object, enclosed in curly braces ({}).
*********************
Operator precedence determines how operators are parsed concerning
each other. Operators with higher precedence become the operands of operators with
lower precedence.
*********************
The experimental pipeline operator |> (currently at stage 1) pipes the
value of an expression into a function. This allows the creation of chained function
calls in a readable manner. The result is syntactic sugar in which a function call with
a single argument can be written like this:
*********************
The remainder operator (%) returns the remainder left over when one
operand is divided by a second operand. It always takes the sign of the dividend.
*********************
The remainder assignment operator (%=) divides a variable by the value of
the right operand and assigns the remainder to the variable.
*********************
The right shift operator (>>) shifts the first
operand the specified number of bits to the right. Excess bits shifted off to the right
are discarded. Copies of the leftmost bit are shifted in from the left. Since the new
leftmost bit has the same value as the previous leftmost bit, the sign bit (the leftmost
bit) does not change. Hence the name "sign-propagating".
*********************
The right shift assignment operator (>>=) moves the specified amount
of bits to the right and assigns the result to the variable.
*********************
Spread syntax (...) allows an iterable such as an array
expression or string to be expanded in places where zero or more arguments (for
function calls) or elements (for array literals) are expected, or an object expression
to be expanded in places where zero or more key-value pairs (for object literals) are
expected.
*********************
The strict equality operator (===) checks whether its two operands are
equal, returning a Boolean result. Unlike the equality operator,
the strict equality operator always considers operands of different types to be
different.
*********************
The strict inequality operator (!==) checks whether its two operands are
not equal, returning a Boolean result. Unlike the inequality
operator, the strict inequality operator always considers operands of different types to
be different.
*********************
The subtraction operator (-) subtracts the two operands, producing their
difference.
*********************
The subtraction assignment operator (-=) subtracts the value of the right
operand from a variable and assigns the result to the variable.
*********************
The super keyword is used to access and call functions on an object's
parent.
*********************
A function's this keyword behaves a little differently in
JavaScript compared to other languages. It also has some differences between strict mode and non-strict
mode.
*********************
The typeof operator returns a string indicating the type
of the unevaluated operand.
*********************
The unary negation operator (-) precedes its operand and negates it.
*********************
The unary plus operator (+) precedes its operand and evaluates to its
operand but attempts to convert it into a number, if it isn't already.
*********************
The unsigned right shift operator (>>>)
(zero-fill right shift) shifts the first operand the specified number of bits to the
right. Excess bits shifted off to the right are discarded. Zero bits are shifted in from
the left. The sign bit becomes 0, so the result is always non-negative.
Unlike the other bitwise operators, zero-fill right shift returns an unsigned 32-bit
integer.
*********************
The unsigned right shift assignment operator (>>>=)
moves the specified amount of bits to the right and assigns the result to the variable.
*********************
The void operator evaluates the given
expression and then returns {{jsxref("undefined")}}.
*********************
The yield keyword is used to pause and resume a generator function
({{jsxref("Statements/function*", "function*")}} or legacy
generator function).
*********************
A block statement (or compound statement in other
languages) is used to group zero or more statements. The block is delimited by a pair of
braces ("curly brackets") and may optionally be {{jsxref("Statements/label", "labelled",
"", 1)}}:
*********************
The break statement terminates the current loop,
{{jsxref("Statements/switch", "switch")}}, or {{jsxref("Statements/label", "label", "",
1)}} statement and transfers program control to the statement following the terminated
statement.
*********************
Constants are block-scoped, much like variables declared using the
let
keyword. The value of a constant can't be changed through reassignment, and it can't be
redeclared.
*********************
The continue statement terminates execution of the
statements in the current iteration of the current or labeled loop, and continues
execution of the loop with the next iteration.
*********************
The debugger statement invokes any available debugging
functionality, such as setting a breakpoint. If no debugging functionality is available,
this statement has no effect.
*********************
The do...while statement creates a loop that executes a
specified statement until the test condition evaluates to false. The condition is
evaluated after executing the statement, resulting in the specified statement executing
at least once.
*********************
An empty statement is used to provide no statement, although the
JavaScript syntax would expect one.
*********************
The for statement creates a loop that consists of three optional
expressions, enclosed in parentheses and separated by semicolons, followed by a
statement (usually a block statement) to
be executed in the loop.
*********************
The for await...of statement creates a loop iterating over async iterable objects as well as on sync iterables, including: built-in {{jsxref("String")}}, {{jsxref("Array")}}, Array-like objects (e.g., {{jsxref("Functions/arguments", "arguments")}} or {{DOMxRef("NodeList")}}), {{jsxref("TypedArray")}}, {{jsxref("Map")}}, {{jsxref("Set")}}, and user-defined async/sync iterables. It invokes a custom iteration hook with statements to be executed for the value of each distinct property of the object. This statement can only be used inside an {{jsxref("Statements/async_function", "async function", "", 1)}}.
*********************
The for...in statement iterates over all enumerable
properties of an object that are keyed by strings (ignoring ones keyed by Symbols),
including inherited enumerable properties.
*********************
The for...of statement creates a loop iterating over iterable
objects, including: built-in {{jsxref("String")}}, {{jsxref("Array")}}, array-like
objects (e.g., {{jsxref("Functions/arguments", "arguments")}}
or {{domxref("NodeList")}}), {{jsxref("TypedArray")}}, {{jsxref("Map")}},
{{jsxref("Set")}}, and user-defined iterables. It invokes a custom iteration hook with
statements to be executed for the value of each distinct property of the object.
*********************
The function declaration (function statement) defines a function with
the specified parameters.
*********************
The function* declaration (function keyword
followed by an asterisk) defines a generator function, which returns a
{{jsxref("Global_Objects/Generator","Generator")}} object.
*********************
The import.meta object exposes context-specific metadata
to a JavaScript module. It contains information about the module, like the module's URL.
*********************
JavaScript applications consist of statements with an appropriate syntax. A single statement may span multiple lines. Multiple statements may occur on a single line if each statement is separated by a semicolon. This isn't a keyword, but a group of keywords.
*********************
The labeled statement can be used with {{jsxref("Statements/break",
"break")}} or {{jsxref("Statements/continue", "continue")}} statements. It is prefixing
a statement with an identifier which you can refer to.
*********************
The let statement declares a block-scoped local variable,
optionally initializing it to a value.
*********************
The return statement ends function execution and
specifies a value to be returned to the function caller.
*********************
The throw statement throws a user-defined exception.
Execution of the current function will stop (the statements after throw
won't be executed), and control will be passed to the first catch
block in the call stack. If no catch block exists among caller functions,
the program will terminate.
*********************
The try...catch statement marks a block of statements to
try and specifies a response should an exception be thrown.
*********************
The var statement declares a function-scoped or
globally-scoped variable, optionally initializing it to a value.
*********************
The while statement creates a loop that executes a specified statement
as long as the test condition evaluates to true. The condition is evaluated before
executing the statement.
*********************
The with statement extends the scope chain for a statement.
*********************
Sometimes you'll see the default, non-strict mode referred to as "
sloppy mode". This isn't an official term, but be
aware of it, just in case.
*********************
ECMAScript 5 introduced strict mode which is now implemented in all major browsers (including IE10). While making web browsers interpret code as strict is easy (just add 'use strict'; at the top of your source code), transitioning an existing code base to strict mode requires a bit more work.
*********************
Trailing commas (sometimes called "final commas") can be useful when
adding new elements, parameters, or properties to JavaScript code. If you want to add a
new property, you can add a new line without modifying the previously last line if that
line already uses a trailing comma. This makes version-control diffs cleaner and editing
code might be less troublesome.
*********************
A JavaScript shell allows you to quickly test snippets of JavaScript code without having to reload a web page. They are extremely useful for developing and debugging code.
*********************
Every JavaScript object has a [[Prototype]].  Getting a property on an object first searches that object, then its [[Prototype]], then that object's [[Prototype]], until the property is found or the chain ends.  The [[Prototype]] chain is especially useful for object inheritance.
*********************
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment