Syntax: string literals: [YES] [double quotes] [e.g. vText = "abc"] [YES] [single quotes] [e.g. vText = 'abc'] [NO] ES6 Template Literals (Template Strings) | Can I use... Support tables for HTML5, CSS3, etc [e.g. vText = `abc`] Syntax: string escape characters: [YES] grammar: Hexadecimal escape sequences (`'\xA9'`) | Can I use... Support tables for HTML5, CSS3, etc [YES] grammar: Unicode escape sequences (`'\u00A9'`) | Can I use... Support tables for HTML5, CSS3, etc [NO] grammar: Unicode point escapes (`\u{}`) | Can I use... Support tables for HTML5, CSS3, etc Syntax: numeric literals: [YES] grammar: Hexadecimal numeric literals (`0xAF`) | Can I use... Support tables for HTML5, CSS3, etc [NO] grammar: Binary numeric literals (`0b`) | Can I use... Support tables for HTML5, CSS3, etc [NO] grammar: Octal numeric literals (`0o`) | Can I use... Support tables for HTML5, CSS3, etc [NO] grammar: Numeric separators (`1_000_000_000_000`) | Can I use... Support tables for HTML5, CSS3, etc Keywords: [YES] JavaScript statement: var | Can I use... Support tables for HTML5, CSS3, etc [PARTIAL] let | Can I use... Support tables for HTML5, CSS3, etc [PARTIAL] const | Can I use... Support tables for HTML5, CSS3, etc [YES] JavaScript function: arguments | Can I use... Support tables for HTML5, CSS3, etc [YES] JavaScript operator: null | Can I use... Support tables for HTML5, CSS3, etc Operators: [YES] JavaScript operator: Strict equality (`a === b`) | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript operator: Exponentiation (`**`) | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript operator: Nullish coalescing operator (`??`) | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript operator: Optional chaining operator (`?.`) | Can I use... Support tables for HTML5, CSS3, etc Operators: spread operator: [NO] JavaScript operator: Spread syntax (...) | Can I use... Support tables for HTML5, CSS3, etc [YES] [function pass argument array] [e.g. oFunc.apply(null, oParams)] [YES] [array push array] [e.g. Array.prototype.push.apply(oArray, oArraySfx)] [YES] [array push array] [e.g. oArray = oArray.concat(oArraySfx)] [YES] [function receive arguments as array] [e.g. oParams = Array.prototype.slice.call(arguments)] [YES] [function receive arguments via for loop] [e.g. for (var i=0; i<arguments.length; i++)] Functions: default parameter values: [NO] JavaScript function: Default parameters | Can I use... Support tables for HTML5, CSS3, etc [YES] [default parameter value workaround] (typeof vNum == "undefined") && (vNum = 0) [YES] [default parameter value workaround] (typeof vText == "undefined") && (vText = "") Functions: arrow functions: [NO] Arrow functions | Can I use... Support tables for HTML5, CSS3, etc [e.g. oFunc = (vNum1, vNum2) => vNum1 + vNum2] [YES] JavaScript operator: `function` expression | Can I use... Support tables for HTML5, CSS3, etc [e.g. oFunc = function (vNum1, vNum2) {return vNum1 + vNum2}]
Object types: [YES] JavaScript built-in: Array | Can I use... Support tables for HTML5, CSS3, etc [YES] JavaScript built-in: Object | Can I use... Support tables for HTML5, CSS3, etc [YES] JavaScript built-in: Map | Can I use... Support tables for HTML5, CSS3, etc [YES] JavaScript built-in: Set | Can I use... Support tables for HTML5, CSS3, etc [YES] JavaScript built-in: Error | Can I use... Support tables for HTML5, CSS3, etc [YES] JavaScript built-in: RegExp | Can I use... Support tables for HTML5, CSS3, etc [YES] XMLHttpRequest API | Can I use... Support tables for HTML5, CSS3, etc [YES] JavaScript built-in: Uint8Array | Can I use... Support tables for HTML5, CSS3, etc [YES] JavaScript built-in: Float32Array | Can I use... Support tables for HTML5, CSS3, etc [YES] JavaScript built-in: Float64Array | Can I use... Support tables for HTML5, CSS3, etc [NO] BigInt | Can I use... Support tables for HTML5, CSS3, etc [NO] TextEncoder & TextDecoder | Can I use... Support tables for HTML5, CSS3, etc Object types: prepopulate: [YES] [prepopulate array] [e.g. oArray = ["a", "b", "c"]] [YES] [prepopulate object] [e.g. oObj = {p1:"v1", p2:"v2", p3:"v3"}] [YES] [prepopulate object] [e.g. oObj = {"p1":"v1", "p2":"v2", "p3":"v3"}] [NO] [prepopulate map] [e.g. oMap = new Map([["k1","v1"], ["k2","v2"], ["k3","v3"]])] [YES] [prepopulate map] [e.g. oMap = new Map(); [["k1","v1"], ["k2","v2"], ["k3","v3"]].forEach(function (v) {oMap.set(v[0], v[1])})] Properties/methods: arrays: [YES] JavaScript built-in: Array: map | Can I use... Support tables for HTML5, CSS3, etc [YES] JavaScript built-in: Array: filter | Can I use... Support tables for HTML5, CSS3, etc [YES] JavaScript built-in: Array: reduce | Can I use... Support tables for HTML5, CSS3, etc [YES] JavaScript built-in: Array: reduceRight | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Array: fill | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Array: keys | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Array: flat | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Array: [Symbol.iterator] | Can I use... Support tables for HTML5, CSS3, etc Properties/methods: objects: [YES] JavaScript built-in: Object: hasOwnProperty | Can I use... Support tables for HTML5, CSS3, etc [YES] JavaScript built-in: Object: keys | Can I use... Support tables for HTML5, CSS3, etc [NO] Object.entries | Can I use... Support tables for HTML5, CSS3, etc Properties/methods: maps: [YES] JavaScript built-in: Map: `Map()` constructor | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Map: keys | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Map: values | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Map: entries | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Map: [Symbol.iterator] | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Map: `Map()` constructor: `new Map(iterable)` | Can I use... Support tables for HTML5, CSS3, etc Loops: arrays: [YES] [C-style for loop] [e.g. for (var i=0; i<oArray.length; i++)] [YES] JavaScript built-in: Array: forEach | Can I use... Support tables for HTML5, CSS3, etc [e.g. oArray.forEach(function (vValue)] [e.g. oArray.forEach(function (vValue, vKey)] [YES] JavaScript operator: in | Can I use... Support tables for HTML5, CSS3, etc [e.g. for (var vKey in oArray)] [NO] JavaScript statement: `for...of` | Can I use... Support tables for HTML5, CSS3, etc [e.g. for (const vValue of oArray)] [e.g. for (const [vKey, vValue] of oArray.entries())] Loops: objects: [YES] JavaScript operator: in | Can I use... Support tables for HTML5, CSS3, etc [e.g. for (var vProp in oObj)] [NO] JavaScript statement: `for...of` | Can I use... Support tables for HTML5, CSS3, etc [e.g. for (const [vProp, vValue] of Object.entries(oObj))] Loops: maps: [YES] JavaScript built-in: Map: forEach | Can I use... Support tables for HTML5, CSS3, etc [e.g. oMap.forEach(function (vValue, vKey)] [NO] JavaScript statement: `for...of` | Can I use... Support tables for HTML5, CSS3, etc [e.g. for (const [vKey, vValue] of oMap)]
Binary data: [YES] Base64 encoding and decoding | Can I use... Support tables for HTML5, CSS3, etc [note: atob() / btoa(): 'ASCII to binary' / 'binary to ASCII'] String functions: replace: [NO] JavaScript built-in: String: replaceAll | Can I use... Support tables for HTML5, CSS3, etc [YES] JavaScript built-in: String: replace | Can I use... Support tables for HTML5, CSS3, etc [note: can do global replace by using replace() with RegExp instance and 'g' flag] String functions: [NO] String.prototype.includes | Can I use... Support tables for HTML5, CSS3, etc [can use: vIsMatch = (vText.indexOf(vNeedle) != -1)] [NO] JavaScript built-in: String: startsWith | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: String: endsWith | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: String: codePointAt | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: String: repeat | Can I use... Support tables for HTML5, CSS3, etc Regular expressions: [YES] JavaScript built-in: String: match | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: String: matchAll | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: RegExp: unicode | Can I use... Support tables for HTML5, CSS3, etc [note: RegExp instance: 'u' flag] Mathematical functions: classic functions: [NO] JavaScript built-in: Math: cbrt | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Math: fround | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Math: hypot | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Math: log10 | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Math: log2 | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Math: sign | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Math: trunc | Can I use... Support tables for HTML5, CSS3, etc Mathematical functions: [YES] JavaScript built-in: isNaN | Can I use... Support tables for HTML5, CSS3, etc [YES] JavaScript built-in: isFinite | Can I use... Support tables for HTML5, CSS3, etc [YES] JavaScript built-in: parseInt | Can I use... Support tables for HTML5, CSS3, etc [YES] JavaScript built-in: parseFloat | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Number: isNaN | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Number: isFinite | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Number: isInteger | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Number: isSafeInteger | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Number: parseInt | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Number: parseFloat | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Number: MAX_SAFE_INTEGER | Can I use... Support tables for HTML5, CSS3, etc [NO] JavaScript built-in: Number: MIN_SAFE_INTEGER | Can I use... Support tables for HTML5, CSS3, etc
One-liner for Internet Explorer, which may be needed to enable newer features: <meta http-equiv="X-UA-Compatible" content="IE=11"> General notes for Internet Explorer on caniuse.com: Browser comparison | Can I use... Support tables for HTML5, CSS3, etc Useful example code for creating polyfill functions: GitHub - zloirock/core-js: Standard Library e.g. core-js\packages\core-js\internals\math-log10.js e.g. core-js\packages\core-js\internals\math-sign.js e.g. core-js\packages\core-js\internals\math-trunc.js e.g. core-js\packages\core-js\modules\es.math.log2.js Many example functions are available at JEE.js, the function library that powers this website. The function library is Internet Explorer 11 compatible.