This document is a section of the web browser standards support document. It includes detailed information about ECMAScript support in major web browsers.
ECMAScript is a language used to access and work with the DOM. It was developed as a standardized base for JavaScript and JScript.
These language constructs are used to control the flow of the program and compare and manipulate information.
| Feature | IE 6 | IE 7 | Firefox 2 | Firefox 3 | Opera 9 |
|---|---|---|---|---|---|
| Types | |||||
| Undefined | Y | Y | Y | Y | Y |
| Null | Y | Y | Y | Y | Y |
| Boolean | Y | Y | Y | Y | Y |
| String | Y | Y | Y | Y | Y |
| Number | Y | Y | Y | Y | Y |
| Object | Y | Y | Y | Y | Y |
| Basic expressions | |||||
| this | Y | Y | Y | Y | Y |
| new | Y | Y | Y | Y | Y |
| Postfix ++ | Y | Y | Y | Y | Y |
| Postfix -- | Y | Y | Y | Y | Y |
| , | I | I | Y | Y | Y |
| Unary expressions | |||||
| delete | Y | Y | Y | Y | Y |
| void | Y | Y | Y | Y | Y |
| typeof | Y | Y | Y | Y | Y |
| Prefix ++ | Y | Y | Y | Y | Y |
| Prefix -- | Y | Y | Y | Y | Y |
| + | Y | Y | Y | Y | Y |
| - | Y | Y | Y | Y | Y |
| ~ | Y | Y | Y | Y | Y |
| ! | Y | Y | Y | Y | Y |
| Math expressions | |||||
| + | Y | Y | Y | Y | Y |
| - | Y | Y | Y | Y | Y |
| * | Y | Y | Y | Y | Y |
| / | Y | Y | Y | Y | Y |
| % | Y | Y | Y | Y | Y |
| Relational expressions | |||||
| == | Y | Y | Y | Y | Y |
| != | Y | Y | Y | Y | Y |
| === | Y | Y | Y | Y | Y |
| !== | Y | Y | Y | Y | Y |
| < | Y | Y | Y | Y | Y |
| > | Y | Y | Y | Y | Y |
| <= | Y | Y | Y | Y | Y |
| >= | Y | Y | Y | Y | Y |
| instanceof | Y | Y | Y | Y | Y |
| in | Y | Y | Y | Y | Y |
| Binary expressions | |||||
| & | Y | Y | Y | Y | Y |
| ^ | Y | Y | Y | Y | Y |
| | | Y | Y | Y | Y | Y |
| && | Y | Y | Y | Y | Y |
| || | Y | Y | Y | Y | Y |
| << | Y | Y | Y | Y | Y |
| >> | Y | Y | Y | Y | Y |
| >>> | Y | Y | Y | Y | Y |
| Assignment expressions | |||||
| = | Y | Y | Y | Y | Y |
| *= | Y | Y | Y | Y | Y |
| /= | Y | Y | Y | Y | Y |
| %= | Y | Y | Y | Y | Y |
| += | Y | Y | Y | Y | Y |
| -= | Y | Y | Y | Y | Y |
| <<= | Y | Y | Y | Y | Y |
| >>= | Y | Y | Y | Y | Y |
| >>>= | Y | Y | Y | Y | Y |
| &= | Y | Y | Y | Y | Y |
| ^= | Y | Y | Y | Y | Y |
| |= | Y | Y | Y | Y | Y |
| Statements | |||||
| Exp ? Exp : Exp | Y | Y | Y | Y | Y |
| var | Y | Y | Y | Y | Y |
| function | Y | Y | Y | Y | Y |
| if | Y | Y | Y | Y | Y |
| if ... else | Y | Y | Y | Y | Y |
| do ... while | Y | Y | Y | Y | Y |
| while | Y | Y | Y | Y | Y |
| for | Y | Y | Y | Y | Y |
| for in | I | I | Y | Y | Y |
| continue | Y | Y | Y | Y | Y |
| break | Y | Y | Y | Y | Y |
| return | Y | Y | Y | Y | Y |
| with | Y | Y | Y | Y | Y |
| switch | Y | Y | Y | Y | Y |
| throw | Y | Y | Y | Y | Y |
| try | Y | Y | Y | Y | Y |
| catch | Y | Y | Y | Y | Y |
| finally | Y | Y | Y | Y | Y |
Objects are groups of related data and methods. The following objects are built into the ECMAScript language.
| Feature | IE 6 | IE 7 | Firefox 2 | Firefox 3 | Opera 9 |
|---|---|---|---|---|---|
| Global | |||||
| (General) | Y | Y | Y | Y | Y |
| NaN | Y | Y | Y | Y | Y |
| Infinity | Y | Y | Y | Y | Y |
| undefined | Y | Y | Y | Y | Y |
| eval() | Y | Y | Y | Y | Y |
| parseInt() | Y | Y | Y | Y | Y |
| parseFloat() | Y | Y | Y | Y | Y |
| isNaN() | Y | Y | Y | Y | Y |
| isFinite() | Y | Y | Y | Y | Y |
| decodeURI() | Y | Y | Y | Y | Y |
| decodeURIComponent() | Y | Y | Y | Y | Y |
| encodeURI() | Y | Y | Y | Y | Y |
| encodeURIComponent() | Y | Y | Y | Y | Y |
| Object | |||||
| (General) | Y | Y | Y | Y | Y |
| constructor | Y | Y | Y | Y | Y |
| toString() | Y | Y | Y | Y | Y |
| toLocaleString() | Y | Y | Y | Y | Y |
| valueOf() | Y | Y | Y | Y | Y |
| hasOwnProperty() | Y | Y | Y | Y | Y |
| isPrototypeOf() | Y | Y | Y | Y | Y |
| prototypeIsEnumerable() | Y | Y | Y | Y | Y |
| Function | |||||
| (General) | Y | Y | Y | Y | Y |
| prototype | Y | Y | Y | Y | Y |
| constructor | Y | Y | Y | Y | Y |
| toString() | Y | Y | Y | Y | Y |
| apply() | Y | Y | Y | Y | Y |
| call() | Y | Y | Y | Y | Y |
| length | Y | Y | Y | Y | Y |
| Array | |||||
| (General) | Y | Y | Y | Y | Y |
| prototype | Y | Y | Y | Y | Y |
| constructor | Y | Y | Y | Y | Y |
| toString() | Y | Y | Y | Y | Y |
| toLocaleString() | Y | Y | Y | Y | Y |
| concat() | Y | Y | Y | Y | Y |
| join() | Y | Y | Y | Y | Y |
| pop() | Y | Y | Y | Y | Y |
| push() | Y | Y | Y | Y | Y |
| reverse() | Y | Y | Y | Y | Y |
| shift() | Y | Y | Y | Y | Y |
| slice() | Y | Y | Y | Y | Y |
| sort() | Y | Y | Y | Y | Y |
| splice() | Y | Y | Y | Y | Y |
| unshift() | Y | Y | Y | Y | Y |
| length | Y | Y | Y | Y | Y |
| String | |||||
| (General) | Y | Y | Y | Y | Y |
| prototype | Y | Y | Y | Y | Y |
| fromCharCode() | Y | Y | Y | Y | Y |
| constructor() | Y | Y | Y | Y | Y |
| toString() | Y | Y | Y | Y | Y |
| valueOf() | Y | Y | Y | Y | Y |
| charAt() | Y | Y | Y | Y | Y |
| charCodeAt() | Y | Y | Y | Y | Y |
| concat() | Y | Y | Y | Y | Y |
| indexOf() | Y | Y | Y | Y | Y |
| lastIndexOf() | Y | Y | Y | Y | Y |
| localeCompare() | Y | Y | Y | Y | Y |
| match() | Y | Y | Y | Y | Y |
| replace() | Y | Y | Y | Y | Y |
| search() | Y | Y | Y | Y | Y |
| slice() | Y | Y | Y | Y | Y |
| split() | I | I | Y | Y | Y |
| substring() | Y | Y | Y | Y | Y |
| toLowerCase() | Y | Y | Y | Y | Y |
| toLocaleLowerCase() | Y | Y | Y | Y | Y |
| toUpperCase() | Y | Y | Y | Y | Y |
| toLocaleUpperCase() | Y | Y | Y | Y | Y |
| length | Y | Y | Y | Y | Y |
| Boolean | |||||
| (General) | Y | Y | Y | Y | Y |
| prototype | Y | Y | Y | Y | Y |
| constructor | Y | Y | Y | Y | Y |
| toString() | Y | Y | Y | Y | Y |
| valueOf() | Y | Y | Y | Y | Y |
| Number | |||||
| (General) | Y | Y | Y | Y | Y |
| prototype | Y | Y | Y | Y | Y |
| MAX_VALUE | Y | Y | Y | Y | Y |
| MIN_VALUE | Y | Y | Y | Y | Y |
| NaN | Y | Y | Y | Y | Y |
| NEGATIVE_INFINITY | Y | Y | Y | Y | Y |
| POSITIVE_INFINITY | Y | Y | Y | Y | Y |
| constructor | Y | Y | Y | Y | Y |
| toString() | Y | Y | Y | Y | Y |
| toLocaleString() | Y | Y | Y | Y | Y |
| valueOf() | Y | Y | Y | Y | Y |
| toFixed() | Y | Y | Y | Y | Y |
| toExponential() | Y | Y | Y | Y | Y |
| toPrecision() | Y | Y | Y | Y | Y |
| Math | |||||
| (General) | Y | Y | Y | Y | Y |
| E | Y | Y | Y | Y | Y |
| LN10 | Y | Y | Y | Y | Y |
| LN2 | Y | Y | Y | Y | Y |
| LOG2E | Y | Y | Y | Y | Y |
| LOG10E | Y | Y | Y | Y | Y |
| PI | Y | Y | Y | Y | Y |
| SQRT1_2 | Y | Y | Y | Y | Y |
| SQRT2 | Y | Y | Y | Y | Y |
| abs() | Y | Y | Y | Y | Y |
| acos() | Y | Y | Y | Y | Y |
| asin() | Y | Y | Y | Y | Y |
| atan() | Y | Y | Y | Y | Y |
| atan2() | Y | Y | Y | Y | Y |
| ceil() | Y | Y | Y | Y | Y |
| cos() | Y | Y | Y | Y | Y |
| exp() | Y | Y | Y | Y | Y |
| floor() | Y | Y | Y | Y | Y |
| log() | Y | Y | Y | Y | Y |
| max() | Y | Y | Y | Y | Y |
| min() | Y | Y | Y | Y | Y |
| pow() | Y | Y | Y | Y | Y |
| random() | Y | Y | Y | Y | Y |
| round() | Y | Y | Y | Y | Y |
| sin() | Y | Y | Y | Y | Y |
| sqrt() | Y | Y | Y | Y | Y |
| tan() | Y | Y | Y | Y | Y |
| Date | |||||
| (General) | Y | Y | Y | Y | Y |
| prototype | Y | Y | Y | Y | Y |
| constructor | Y | Y | Y | Y | Y |
| toString() | Y | Y | Y | Y | Y |
| toDateString() | Y | Y | Y | Y | Y |
| toTimeString() | Y | Y | Y | Y | Y |
| toLocaleString() | Y | Y | Y | Y | Y |
| toLocaleDateString() | Y | Y | Y | Y | Y |
| toLocaleTimeString() | Y | Y | Y | Y | Y |
| valueOf() | Y | Y | Y | Y | Y |
| getTime() | Y | Y | Y | Y | Y |
| getFullYear() | Y | Y | Y | Y | Y |
| getUTCFullYear() | Y | Y | Y | Y | Y |
| getMonth() | Y | Y | Y | Y | Y |
| getUTCMonth() | Y | Y | Y | Y | Y |
| getDate() | Y | Y | Y | Y | Y |
| getUTCDate() | Y | Y | Y | Y | Y |
| getDay() | Y | Y | Y | Y | Y |
| getUTCDay() | Y | Y | Y | Y | Y |
| getHours() | Y | Y | Y | Y | Y |
| getUTCHours() | Y | Y | Y | Y | Y |
| getMinutes() | Y | Y | Y | Y | Y |
| getUTCMinutes() | Y | Y | Y | Y | Y |
| getSeconds() | Y | Y | Y | Y | Y |
| getUTCSeconds() | Y | Y | Y | Y | Y |
| getMilliseconds() | Y | Y | Y | Y | Y |
| getUTCMilliseconds() | Y | Y | Y | Y | Y |
| getTimezoneOffset() | Y | Y | Y | Y | Y |
| setTime() | Y | Y | Y | Y | Y |
| setMilliseconds() | Y | Y | Y | Y | Y |
| setUTCMilliseconds() | Y | Y | Y | Y | Y |
| setSeconds() | Y | Y | Y | Y | Y |
| setUTCSeconds() | Y | Y | Y | Y | Y |
| setMinutes() | Y | Y | Y | Y | Y |
| setUTCMinutes() | Y | Y | Y | Y | Y |
| setHours() | Y | Y | Y | Y | Y |
| setUTCHours() | Y | Y | Y | Y | Y |
| setDate() | Y | Y | Y | Y | Y |
| setUTCDate() | Y | Y | Y | Y | Y |
| setMonth() | Y | Y | Y | Y | Y |
| setUTCMonth() | Y | Y | Y | Y | Y |
| setFullYear() | Y | Y | Y | Y | Y |
| setUTCFullYear() | Y | Y | Y | Y | Y |
| toUTCString() | Y | Y | Y | Y | Y |
| RegExp | |||||
| (General) | Y | Y | Y | Y | Y |
| prototype | Y | Y | Y | Y | Y |
| constructor | Y | Y | Y | Y | Y |
| exec() | Y | Y | Y | Y | Y |
| test() | Y | Y | Y | Y | Y |
| toString() | Y | Y | Y | Y | Y |
| source | Y | Y | Y | Y | Y |
| global | Y | Y | Y | Y | Y |
| ignoreCase | Y | Y | Y | Y | Y |
| multiline | Y | Y | Y | Y | Y |
| lastIndex | Y | Y | Y | Y | Y |
| Error | |||||
| (General) | Y | Y | Y | Y | Y |
| prototype | Y | Y | Y | Y | Y |
| constructor | Y | Y | Y | Y | Y |
| name | Y | Y | Y | Y | Y |
| message | Y | Y | Y | Y | Y |
| toString() | Y | Y | Y | Y | Y |