2016
28 featuresThe navigator.userAgent property and several others loosely identify a browser. Selectively showing content based on the user agent string, also known as user agent sniffing, is unreliable. Consider using feature detection or user agent client hints instead.
The atob() and btoa() global functions encode and decode strings to and from base 64, respectively.
The let and const declarations define block-scoped variables.
The @supports (-webkit-transform-3d) CSS media query is a standardized compatibility alternative to @supports (transform-style).
The background-repeat CSS property sets how a background image is tiled.
Generator functions (function*) create iterators that return multiple values, one after another, on-demand.
The Proxy and Reflect JavaScript built-ins intercept and define custom behavior for fundamental language operations (such as property lookup, assignment, enumeration, or function invocation).
The normalize() method of strings returns a Unicode normal form of a string as a new string. More than one code point sequence can represent the same characters. You can use the normalize() method to find canonically or compatibly equivalent strings.
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.
The fill() method of arrays and typed arrays sets all or some items of an array to a given a value.
The find() and findIndex() methods of arrays and typed arrays search an array for the first item that satisfies a test function.
The Array.of() and typed array .of() static methods create new arrays from the values of any number of arguments.
Typed array iteration methods
Typed arrays are iterable with the for … of statement and enumerable with the methods entries(), keys(), and values().
The includes() method of arrays and typed arrays returns whether a given value appears in the array.
The Array.from() and typed array .from() static methods copy items from an iterable or array-like object to make a new array.
The @font-face CSS at-rule creates a custom font-family value. The at-rule's descriptors set the font's name, source, and various display settings.
The filter CSS property applies one or more graphic effects to an element. You can use filter functions, such as blur() and drop-shadow(), alone or combined to produce different effects. For instance, filter: blur(2px).
The OES_texture_half_float_linear extension for WebGL 1.0 contexts adds linear filtering with half floating-point pixel types for textures.
Content Security Policy (CSP) helps to mitigate certain security threats, including cross-site scripting (XSS) and clickjacking attacks. It consists of a set of directives from a website to a browser, which instruct the browser to restrict the things that the site is allowed to do.
The OES_texture_half_float extension for WebGL 1.0 contexts adds texture formats with 16-bit (also known as half float) and 32-bit floating-point components.
The EXT_texture_filter_anisotropic extension for WebGL 1.0 and 2.0 contexts adds anisotropic filtering (AF). AF improves the quality of mipmapped texture access when viewing a textured primitive at an oblique angle.
The ANGLE_instanced_arrays extension for WebGL 1.0 contexts draws the same object multiple times or groups of similar objects multiple times, if the group shares the same vertex data, primitive count and type.
The font-feature-settings CSS property sets low-level OpenType feature tags for a font. When possible, use font-variant instead.
The DOMParser API parses XML or HTML source code from a string into a DOM Document.
The unset keyword resets any CSS property, removing any values previously set by the author, user, or browser. Inherited properties (like color) reset to the parent element's computed value. Non-inherited properties (like display) reset to the specified initial value (inline).
The <picture> element is used for art direction in responsive images, where a different image is displayed based on the <source> element.
Classes are an object-oriented syntax for JavaScript prototypes.