JavaScript
Baseline ReadyA practical reference for deciding whether a JavaScript feature is ready to use now.
- Widely available80features
- Newly available21features
- Limited support20features
Browse by category
Array (initial support)
The Array object, as with arrays in other programming languages, enables storing a collection of multiple items under a single variable name, and has members for performing common array operations.
Array at()
The at() method of Array instances takes an integer value and returns the item at that index, allowing for positive and negative integers.
Array by copy
The toReversed() method of Array instances is the copying counterpart of the reverse() method.
Array copyWithin()
The copyWithin() method of Array instances shallow copies part of this array to another location in the same array and returns this array without modifying its length.
Array fill()
The fill() method of Array instances changes all elements within a range of indices in an array to a static value.
Array find() and findIndex()
The find() method of Array instances returns the first element in the provided array that satisfies the provided testing function.
Array findLast() and findLastIndex()
The findLast() method of Array instances iterates the array in reverse order and returns the value of the first element that satisfies the provided testing function.
Array flat() and flatMap()
The flat() method of Array instances creates a new array with all sub-array
Array includes()
The includes() method of Array instances determines whether an array
Array iteration methods
The every() method of Array instances returns false if it finds an element in the array that does not satisfy the provided testing function.
Array iterators
The [Symbol.
Array splice()
The splice() method of Array instances changes the contents of an array by
Array.from()
The Array.
Array.isArray()
The Array.
Array.of()
The Array.
Stable array sort
Stable array sort() function
Async functions
The AsyncFunction object provides methods for async functions.
Promise (initial support)
The Promise object represents the eventual completion (or failure) of an asynchronous operation and its resulting value.
Promise finally()
The finally() method of Promise instances schedules a function to be called when the promise is settled (either fulfilled or rejected).
Promise.allSettled()
The Promise.
Promise.any()
The AggregateError object represents an error when several errors need to be wrapped in a single error.
JSON
The JSON namespace object contains static methods for parsing values from and converting values to JavaScript Object Notation (JSON).
Intl.DisplayNames
The Intl.
Intl.ListFormat
The Intl.
Intl.PluralRules
The Intl.
Intl.RelativeTimeFormat
The Intl.
Intl
The Intl namespace object contains several constructors as well as functionality common to the internationalization constructors and other language sensitive functions.
Intl.Locale
The Intl.
Async iterators and the for await..of loop
An AsyncIterator object is an object that conforms to the async iterator protocol by providing a next() method that returns a promise fulfilling to an iterator result object.
Iterators and the for...of loop
An Iterator object is an object that conforms to the iterator protocol by providing a next() method that returns an iterator result object.
Typed array iterators
The [Symbol.
Async generators
The AsyncGenerator object is returned by an async generator function and it conforms to both the async iterable protocol and the async iterator protocol.
BigInt
BigInt values represent integer values which are too high or too low to be represented by the number primitive.
BigInt64Array
The BigInt64Array typed array represents an array of 64-bit signed integers in the platform byte order.
Classes
The class declaration creates a binding of a new class to a given name.
Destructuring
The destructuring syntax is a JavaScript syntax that makes it possible to unpack values from arrays, or properties from objects, into distinct variables.
Error cause
The cause data property of an Error instance indicates the specific original cause of the error.
Exponentiation operator
The exponentiation (**) operator returns the result of raising the first operand to the power of the second operand.
Functions
The Function object provides methods for functions.
Generators
The Generator object is returned by a generator function and it conforms to both the iterable protocol and the iterator protocol.
globalThis
The globalThis global property contains the global this value, which is usually akin to the global object.
Hashbang comments
This page describes JavaScript's lexical grammar.
JavaScript (initial core language support)
Boolean values can be one of two values: true or false, representing the truth value of a logical proposition.
Let and const
The const declaration declares block-scoped local variables.
Logical assignments
The logical AND assignment (&&=) operator only evaluates the right operand and assigns to the left if the left operand is truthy.
Nullish coalescing
The nullish coalescing (?
Numeric separators
This page describes JavaScript's lexical grammar.
Optional catch binding
Omit the the binding parameter of a catch clause when you don't need information about the exception in a try ... catch statement.
Proxy and Reflect
The Proxy object enables you to create a proxy for another object, which can intercept and redefine fundamental operations for that object.
SharedArrayBuffer and Atomics
The Atomics namespace object contains static methods for carrying out atomic operations.
Template literals
Template literals are literals delimited with backtick (`) characters, allowing for multi-line strings, string interpolation with embedded expressions, and special constructs called tagged templates.
Unicode point escapes
This page describes JavaScript's lexical grammar.
Weak references
A FinalizationRegistry object lets you request a callback when a value is garbage-collected.
Map (initial support)
The Map object holds key-value pairs and remembers the original insertion order of the keys.
Set (initial support)
The Set object lets you store unique values of any type, whether primitive values or object references.
JavaScript modules
The export declaration is used to export values from a JavaScript module.
JavaScript modules in workers
The Worker() constructor accepts { type: "module" } to load scripts that use import and export. Also known as ECMAScript modules or ESM in workers.
Object
The Object type represents one of JavaScript's data types.
Object.hasOwn()
The Object.
Date
JavaScript Date objects represent a single moment in time in a platform-independent format.
Math and numbers
Number values represent floating-point numbers like 37 or -9.
String (initial support)
The String object is used to represent and manipulate a
Symbol
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.
String at()
The at() method of String values takes an integer value and returns a new String consisting of the single UTF-16 code unit located at the specified offset.
String codePointAt() and fromCodePoint()
The codePointAt() method of String values returns a non-negative integer that is the Unicode code point value of the character starting at the given index.
String includes()
The includes() method of String values performs a case-sensitive search to determine whether a given string may be found within this string, returning true or false as appropriate.
String matchAll()
The matchAll() method of String values returns an iterator of all results matching this string against a regular expression, including capturing groups.
String normalize()
The normalize() method of String values returns the Unicode Normalization
String padStart() and padEnd()
The padEnd() method of String values pads this string with a given string (repeated and/or truncated, if needed) so that the resulting string has a given length.
String raw()
The String.
String repeat()
The repeat() method of String values constructs and returns a new string
String replaceAll()
The replaceAll() method of String values returns a new string with all matches of a pattern replaced by a replacement.
String startsWith() and endsWith()
The endsWith() method of String values determines whether a string ends with the characters of this string, returning true or false as appropriate.
String trimStart() and trimEnd()
The trimEnd() method of String values removes whitespace from the end of this string and returns a new string, without modifying the original string.
Spread syntax
The spread (.
Regular expressions
The RegExp object is used for matching text with a pattern.
Typed array iteration methods
The every() method of TypedArray instances returns false if it finds an element in the array that does not satisfy the provided testing function.
Typed arrays (initial support)
The ArrayBuffer object is used to represent a generic raw binary data buffer.
WeakMap
A WeakMap is a collection of key/value pairs whose keys must be objects or non-registered symbols, with values of any arbitrary JavaScript type, and which does not create strong references to its keys.
WeakSet
A WeakSet is a collection of garbage-collectable values, including objects and non-registered symbols.
Array grouping
Note:
Array.fromAsync()
The Array.
Promise.withResolvers()
The Promise.
Promise.try()
The Promise.
Intl.Segmenter
The Intl.
Intl.DurationFormat
The Intl.
Iterator methods
The Iterator() constructor is intended to be used as the superclass of other classes that create iterators.
Iterator.concat()
The Iterator.
JSON import attributes
Module import … with { type: "json" } statements load JSON data. Also known as JSON module scripts.
JSON source text access
The JSON.
Atomics.pause()
The Atomics.
Atomics.waitAsync()
The Atomics.
Resizable buffers
The maxByteLength accessor property of ArrayBuffer instances returns the maximum length (in bytes) that this array buffer can be resized to.
Transferable ArrayBuffer
The detached accessor property of ArrayBuffer instances returns a boolean indicating whether or not this buffer has been detached (transferred).
Map getOrInsert()
The getOrInsert() method of Map instances returns the value corresponding to the specified key in this Map.
Set methods
The difference() method of Set instances takes a set and returns a new set containing elements in this set but not in the given set.
JavaScript modules in service workers
The navigator.serviceWorker.register() method accepts { type: "module" } to load scripts that use import and export. Also known as ECMAScript modules or ESM in service workers.
String isWellFormed() and toWellFormed()
The isWellFormed() method of String values returns a boolean indicating whether this string contains any lone surrogates.
RegExp.escape()
The RegExp.
Float16Array
The Float16Array typed array represents an array of 16-bit floating point numbers in the platform byte order.
Uint8Array base64 and hex conversion
The Uint8Array.
Serializable errors
Serializable objects are objects that can be serialized and later deserialized in any JavaScript environment ("realm").
Intl.Locale info
The getCalendars() method of Intl.
__proto__
Deprecated: This feature is no longer recommended.
Accessor methods
Deprecated: This feature is no longer recommended.
arguments.callee
Deprecated: This feature is no longer recommended.
Error.isError()
The Error.
escape() and unescape()
Deprecated: This feature is no longer recommended.
Function caller and arguments
Deprecated: This feature is no longer recommended.
getYear() and setYear()
Deprecated: This feature is no longer recommended.
HTML wrapper methods
Deprecated: This feature is no longer recommended.
Math.sumPrecise()
The Math.
Temporal
The Temporal object enables date and time management in various scenarios, including built-in time zone and calendar representation, wall-clock time conversions, arithmetics, formatting, and more.
toGMTString()
The toUTCString() method of Date instances returns a string representing this date in the RFC 7231 format, with negative years allowed.
Top-level await
The await operator is used to wait for a Promise and get its fulfillment value.
with
Deprecated: This feature is no longer recommended.
CSS import attributes
Module import … with { type: "css" } statements load CSS modules as constructable stylesheets. Also known as CSS module scripts.
Import assertions
Module import … assert { type: "json" } and import … assert { type: "css" } JavaScript statements load JSON and CSS data.
RegExp compile()
Deprecated: This feature is no longer recommended.
RegExp static properties
Deprecated: This feature is no longer recommended.
Explicit resource management
The AsyncDisposableStack object represents a stack of async disposers to run when the stack itself is disposed.