Array.isArray()
Widely Available
The Array.isArray() static method checks whether a value is an array.
Polyfills (2)
Iterators and the for...of loop
Widely Available
The for...of loop operates on a sequence of values sourced from an iterable object, such as arrays, array-like objects, DOM collections, iterators, generators, and user-defined iterables. All built-in iterators inherit from the Iterator class.
Polyfills (2)
Map (initial support)
Widely Available
Map objects hold key-value pairs and remember the original insertion order of the keys.
Polyfills (2)
Math and numbers
Widely Available
The number type (and Number object) represents floating-point numbers, such as 42 or -4.201, while the Math API contains mathematical functions and constants. JavaScript can also represent boundless negative and positive values as Infinity or not-a-number as NaN (as in 0 * Infinity).
Promise (initial support)
Widely Available
A promise represents an asynchronous operation which eventually succeeds or fails.
Polyfills (1)
Regular expressions
Widely Available
The RegExp object represents a regular expression, a notation for matching text patterns.
Set (initial support)
Widely Available
Set objects store unique values of any type.
Polyfills (2)
setInterval
Widely Available
The setInterval() global function repeatedly executes provided code on a given delay, and the accompanying clearInterval() cancels the interval.
setTimeout()
Widely Available
The setTimeout() global function executes provided code after a given duration of time, and the accompanying clearTimeout() cancels the timer.
Polyfills (1)
WeakMap
Widely Available
A WeakMap object holds key-value pairs that do not create strong references to its keys, such that value data can be associated with a key without preventing garbage collection of the key.
Polyfills (1)
String codePointAt() and fromCodePoint()
Widely Available
The codePointAt() method returns the numeric value of the UTF-16 code point at an index of the string. The fromCodePoint() method returns a string created from one or more code points.
String includes()
Widely Available
The includes() method of strings returns whether a search string appears within the string.
Polyfills (2)
String raw()
Widely Available
The String.raw() static method interpolates template literal substitutions, but ignores escape sequences. It is the tag function for template literals.
Polyfills (2)
String repeat()
Widely Available
The repeat() method of strings returns the original string repeated a number of times.
Polyfills (2)
String startsWith() and endsWith()
Widely Available
The startsWith() and endsWith() methods of strings returns whether a search string appears at the beginning or end of the provided string.
Symbol
Widely Available
A Symbol value is a unique, non-enumerable primitive value used for encapsulation or information hiding. For example, a symbol can be a key of an object that can never collide with any other key.
Polyfills (1)
WeakSet
Widely Available
A WeakSet object stores unique values of any type without creating strong references to the values, such that membership in the set does not prevent garbage collection of the value.
Polyfills (1)
Array copyWithin()
Widely Available
The copyWithin() method of arrays and typed arrays shifts or copies items of an array to another index of the array without changing its length.
Array fill()
Widely Available
The fill() method of arrays and typed arrays sets all or some items of an array to a given a value.
Polyfills (2)
Array find() and findIndex()
Widely Available
The find() and findIndex() methods of arrays and typed arrays search an array for the first item that satisfies a test function.
Polyfills (2)
Array.from()
Widely Available
The Array.from() and typed array .from() static methods copy items from an iterable or array-like object to make a new array.
Polyfills (3)
Array includes()
Widely Available
The includes() method of arrays and typed arrays returns whether a given value appears in the array.
Array.of()
Widely Available
The Array.of() and typed array .of() static methods create new arrays from the values of any number of arguments.
Polyfills (3)
Base64 encoding and decoding
Widely Available
The atob() and btoa() global functions encode and decode strings to and from base 64, respectively.
Polyfills (2)
Typed array iteration methods
Widely Available
Typed array iteration methods
Polyfills (1)
Typed array iterators
Widely Available
Typed arrays are iterable with the for … of statement and enumerable with the methods entries(), keys(), and values().
Polyfills (1)
String padStart() and padEnd()
Widely Available
The padStart() and padEnd() methods of strings return a string lengthened to a minimum number of characters by adding characters to the start or end of the string.
Custom properties
Widely Available
Custom properties are CSS properties prefixed with -- that set values you can reuse with the var() function. For example, you can set a --key-color property to reuse as border-color: var(--key-color). Also known as CSS variables.
Polyfills (1)
Promise finally()
Widely Available
The promise finally() method executes a function when the promise settles (resolves or rejects).
Polyfills (2)
Intersection observer
Widely Available
The IntersectionObserver API asynchronously observes changes in the intersection of a target element with an ancestor element or with a top-level document's viewport.
Polyfills (2)
Intl.PluralRules
Widely Available
The Intl.PluralRules API creates a locale-aware object that tells you which of the language's pluralization rules apply based on a given number.
Polyfills (1)
Array flat() and flatMap()
Widely Available
The flat() and flatMap() methods for arrays creates a new array such that each nested array item is concatenated into it.
CSS.escape()
Widely Available
The CSS.escape() static method escapes a string so that it can be used in a valid CSS selector.
Polyfills (1)
globalThis
Widely Available
The globalThis property accesses the global this value (and hence the global object itself) across environments.
Polyfills (2)
Server-sent events
Widely Available
The EventSource API creates a connection to a server and listens to a stream of events sent by the server.
Polyfills (3)
Stable array sort
Widely Available
Stable array sort() function
String matchAll()
Widely Available
The matchAll() method of strings matches a string against a regular expression and returns an iterator of all results, including capturing groups.
Polyfills (2)
String trimStart() and trimEnd()
Widely Available
The trimStart() and trimEnd() methods of strings return a new string with whitespace removed from the beginning or end of the string.
Promise.allSettled()
Widely Available
The Promise.allSettled() static method waits for an array of promises to settle (resolve or reject).
Polyfills (2)
queueMicrotask()
Widely Available
The queueMicrotask() method schedules a function to run after the currently running synchronous JavaScript finishes but before returning to the event loop.
Polyfills (1)
String replaceAll()
Widely Available
The replaceAll() method of strings returns a new string where all matches of a pattern (a string or regular expression) have been substituted with a replacement string.
Polyfills (2)
Intl.Locale
Widely Available
The Intl.Locale API parses Unicode locale identifiers, with language, region, and script codes, such as zh-Hans-CN or en-GB.
Polyfills (1)
Intl.RelativeTimeFormat
Widely Available
The Intl.RelativeTimeFormat API creates a locale-aware formatter that turns an object representing a relative time (such as '1 day ago') into a localized string.
Polyfills (1)
Promise.any()
Widely Available
The Promise.any() static method returns a promise that fulfills as soon as the first of an iterable of promises fulfills, with that promise's value. Otherwise, it rejects with an AggregateError when all of the promises have rejected.
Polyfills (2)
Array by copy
Newly Available
The toReversed(), toSorted(), toSpliced(), and with() methods of arrays and typed arrays return changed copies of arrays. They stand in contrast to methods such as sort() or reverse() that change arrays in place.
:is()
Widely Available
The :is() CSS functional pseudo-class takes a selector list as its argument, and matches any element that can be selected by one of the selectors in that list.
Polyfills (1)
String isWellFormed() and toWellFormed()
Newly Available
The isWellFormed() method of strings returns a boolean indicating if the string contains any Unicode lone surrogates. The toWellFormed() method returns a new string where all lone surrogates are replaced by the Unicode replacement character.
Intl.DisplayNames
Widely Available
The Intl.DisplayNames API provides localized names of language, region, script, and currency codes.
Polyfills (1)
Intl.ListFormat
Widely Available
The Intl.ListFormat API creates a locale-aware formatter that turns iterable objects into localized strings.
Polyfills (1)
MediaStream recording
Widely Available
The MediaRecorder API captures data generated by MediaStream or HTMLMediaElement objects for analysis, processing, or saving to disk. Also known as the Media Recording API.
Polyfills (1)
URL.canParse()
Newly Available
The URL.canParse() static method checks whether a URL can be parsed into a valid URL object. It's an alternative to calling new URL() in a try … catch statement.
Polyfills (2)
Nesting
Newly Available
CSS nesting allows for shorter selectors, easier reading, and more modularity by nesting rules inside others.
Polyfills (1)
:has()
Newly Available
The :has() CSS functional pseudo-class matches an element if any of the selectors passed as parameters would match at least one element.
Polyfills (2)
Array.fromAsync()
Newly Available
The Array.fromAsync() static method copies items from an async iterable object to make a new array.
Polyfills (1)
Array grouping
Newly Available
The Object.groupBy() and Map.groupBy() static methods group values of arrays and iterables based on a function that returns a key for each value.
Polyfills (3)
Promise.withResolvers()
Newly Available
The Promise.withResolvers() static method is an alternative to the Promise() constructor that returns both the promise and resolution functions. You can use this to access resolve and reject outside the scope of the executor function.
Polyfills (2)
Transferable ArrayBuffer
Newly Available
The transfer() and transferToFixedLength() methods of ArrayBuffer move a buffer from one context to another (for example, to a worker).
Intl.Segmenter
Newly Available
The Intl.Segmenter API creates a locale-aware text splitter that can separate a string into meaningful graphemes, words, or sentences.
Polyfills (1)
Set methods
Newly Available
The difference(), intersection(), isDisjointFrom(), isSubsetOf(), isSupersetOf(), symmetricDifference(), and union() methods of the JavaScript Set object performs operations between two sets.
Polyfills (8)
Array at()
Widely Available
The at() method of arrays and typed arrays returns the item at an index, including negative indices for getting items relative to the end of an array. Also known as the relative indexing method.
Polyfills (2)
Object.hasOwn()
Widely Available
The Object.hasOwn() static method checks whether an object has a given property. It's a more robust alternative to the Object.prototype.hasOwnProperty() method.
Polyfills (2)
String at()
Widely Available
The at() method of strings returns the character (one UTF-16 code unit) at an index, including negative indices for getting the character relative to the end of the string. Also known as the relative indexing method.
Polyfills (2)
structuredClone()
Widely Available
The structuredClone() global method creates a deep copy of an object. Values that cannot be cloned can instead be transferred, making the original value no longer usable.
Polyfills (3)
-
Structured clone polyfill GitHub
Cascade layers
Widely Available
The @layer CSS at-rule avoids specificity conflicts by providing priority levels for different groups of CSS rules, such as low-priority styles like resets, and high-priority styles like UI components.
Polyfills (1)
:focus-visible
Widely Available
The :focus-visible CSS pseudo-class selects elements that match the :focus pseudo-class and meets the browser's criteria for visually emphasizing focused elements.
Polyfills (2)
Relative colors
Newly Available
The from keyword for color functions (color(), hsl(), oklch(), etc.) creates a new color based on a given color by modifying the values of the input color. Also known as relative color syntax (RCS).
Polyfills (1)
Promise.try()
Newly Available
The Promise.try() static method returns a promise that takes a callback of any kind (returns or throws, synchronously or asynchronously) and wraps its result in a Promise.
Polyfills (2)
Array findLast() and findLastIndex()
Widely Available
The findLast() and findLastIndex() methods of arrays and typed arrays search an array in reverse order for the first item that satisfies a test function.
Polyfills (2)
Intl.DurationFormat
Newly Available
The Intl.DurationFormat API creates a locale-aware formatter that turns an object representing a duration (such as days, hours, and minutes) into a string.
Polyfills (1)
Iterator methods
Newly Available
The Iterator object is an abstract base for objects that implement the iterator protocol. It provides methods common to built-in iterators, such as filter(), find(), map(), and reduce(). You can also use the static method Iterator.from() to convert an existing iterable into an Iterator.
Polyfills (2)
ic unit
Widely Available
The ic CSS length unit corresponds to the width of CJK ideographic characters.
Polyfills (1)
RegExp.escape()
Newly Available
The RegExp.escape() static method takes a string and replaces any characters that are potentially special characters of a regular expression with equivalent escape sequences. For example, RegExp.escape("[abc]") returns "\\[abc\\]".
Polyfills (2)
Small, large, and dynamic viewport units
Widely Available
The sv*, lv*, and dv* CSS viewport units are relative to the smallest, largest, and current (dynamic) viewport size. They are used to size elements in relation to the viewport's dimensions.
Polyfills (1)
Container queries
Widely Available
Container size queries with the @container at-rule apply styles to an element based on the dimensions of its container.
Polyfills (1)
Uint8Array base64 and hex conversion
Newly Available
The Uint8Array object methods fromBase64(), toBase64(), and setFromBase64() convert to and from base64 strings. The fromHex(), toHex(), and setFromHex() methods convert to and from hex strings.
URLPattern
Newly Available
The URLPattern API creates patterns that can be matched against URLs or URL components.
Polyfills (1)
Media query range syntax
Widely Available
The range syntax of CSS media queries allows you to use mathematical comparison operators such as <, >, <=, and >= to define a range of values for a media query. For example, (400px < width < 1000px) returns true if the viewport width is between 400px and 1000px.
Polyfills (1)
color()
Widely Available
The color() function picks a color from a given color space. Wide gamut color spaces like display-p3 allow showing more vibrant and saturated colors than the standard srgb color space.
Polyfills (1)
color-mix()
Widely Available
The color-mix() function mixes two colors in a given color space and by a given amount. Commonly, lighter or darker variations of a color are created by mixing with white or black.
Polyfills (1)
Lab and LCH
Widely Available
The CIE Lab color space expresses colors in terms of lightness and how red/green and blue/yellow a color is. LCH is a variant of Lab with polar coordinates. These color spaces can be used with the CSS color(), lab(), and lch() functions. Also known as CIELAB and CIELCH.
Polyfills (1)
Oklab and Oklch
Widely Available
The Oklab color space expresses colors in terms of lightness and how red/green and blue/yellow a color is, aiming to match how humans perceive colors. Oklch is a variant of Oklab with polar coordinates. These color spaces can be used with the CSS color(), oklab(), and oklch() functions.
Polyfills (1)
Accessor methods
Limited Availability
The __defineGetter__() and __defineSetter__() methods of objects bind a function to a property, which is called on setting or reading the property.
Polyfills (1)
getYear() and setYear()
Limited Availability
The getYear() and setYear() methods of Date objects get and set the year as an offset to 1900.
Polyfills (2)
escape() and unescape()
Limited Availability
The escape() and unescape() built-in Javascript methods encode and unencode strings using percent encoding, where certain characters are replaced by hexadecimal escape sequences.
Polyfills (1)
Explicit resource management
Limited Availability
The using and await using declarations and the dispose and asyncDispose symbols manage the lifecycle of resources such as file handles and streams. The DisposableStack and AsyncDisposableStack objects can group, dispose, and coordinate dependencies between multiple disposable resources.
Polyfills (1)
Map getOrInsert()
Limited Availability
The getOrInsert() and getOrInsertComputed() methods of Map objects get a value, setting and getting a default value if needed.
Polyfills (5)
HTML wrapper methods
Limited Availability
JavaScript built-in methods such as, String.bold() and String.italics(), wrap strings in (often historic) HTML.
Intl.Locale info
Limited Availability
The getter methods of the Intl.Locale API provide supplemental information about a Unicode locale, such as the locale's calendar (for example, the first day in a week or the weekend start day), writing direction, 12- or 24-hour cycles, and numbering system.
Polyfills (1)
Error.isError()
Limited Availability
The Error.isError() static method checks whether a value is an Error object.
Polyfills (2)
JSON source text access
Limited Availability
To serialize and parse JSON in a lossless way, JSON.stringify() handles rawJSON values and JSON.parse()'s reviver callback takes a source context parameter.
Math.sumPrecise()
Limited Availability
The Math.sumPrecise() static method returns the sum of an iterable of numbers. It avoids the precision loss of intermediate partial sums, as found using reduce() or a loop to add together an array of values.
Polyfills (2)
Presentation API
Limited Availability
The Presentation API shows or controls content on another display, such as a network-connected TV or projector.
Polyfills (3)
Serializable errors
Limited Availability
The DOMException, Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, and URIError objects are serializable. You can call structuredClone() on an error object or pass it to a worker using postMessage().
Polyfills (3)
-
Structured clone polyfill GitHub
Temporal
Limited Availability
The Temporal API allows you to work with dates, times, time zones, and durations. It is more powerful than the Date API.
Polyfills (2)
Trusted types
Limited Availability
Trusted types allow you to lock down insecure parts of the DOM API and prevent client-side cross-site scripting (XSS) attacks.
WebVR
Limited Availability
The navigator.getVRDisplays() API represents virtual reality (VR) devices, including sensors and head-mounted displays.
Polyfills (1)
Scheduler API
Limited Availability
The scheduler API provides a way to prioritize all tasks belonging to an application.