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 1.5 | Firefox 2 | Firefox 3 | Opera 8.5 | Opera 9 | Safari 2 |
---|---|---|---|---|---|---|---|---|
Types | ||||||||
Undefined | Y | Y | Y | Y | Y | Y | Y | ? |
Null | Y | Y | Y | Y | Y | Y | Y | ? |
Boolean | Y | Y | Y | Y | Y | Y | Y | ? |
String | Y | Y | Y | Y | Y | Y | Y | ? |
Number | Y | Y | Y | Y | Y | Y | Y | ? |
Object | Y | Y | Y | Y | Y | Y | Y | ? |
Basic expressions | ||||||||
this | Y | Y | Y | Y | Y | Y | Y | ? |
new | Y | Y | Y | Y | Y | Y | Y | ? |
Postfix ++ | Y | Y | Y | Y | Y | Y | Y | ? |
Postfix -- | Y | Y | Y | Y | Y | Y | Y | ? |
, | I | I | Y | Y | Y | Y | Y | ? |
Unary expressions | ||||||||
delete | Y | Y | Y | Y | Y | Y | Y | ? |
void | Y | Y | Y | Y | Y | Y | Y | ? |
typeof | Y | Y | Y | Y | Y | Y | Y | ? |
Prefix ++ | Y | Y | 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 | 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 | 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 | Y | Y | ? |
<= | Y | Y | Y | Y | Y | Y | Y | ? |
>= | Y | Y | Y | Y | Y | Y | Y | ? |
instanceof | Y | Y | Y | Y | Y | Y | Y | ? |
in | Y | Y | 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 | 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 | 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 | Y | Y | ? |
var | Y | Y | Y | Y | Y | Y | Y | ? |
function | Y | Y | Y | Y | Y | Y | Y | ? |
if | Y | Y | Y | Y | Y | Y | Y | ? |
if ... else | Y | Y | Y | Y | Y | Y | Y | ? |
do ... while | Y | Y | Y | Y | Y | Y | Y | ? |
while | Y | Y | Y | Y | Y | Y | Y | ? |
for | Y | Y | Y | Y | Y | Y | Y | ? |
for in | I | I | Y | Y | Y | Y | Y | ? |
continue | Y | Y | Y | Y | Y | Y | Y | ? |
break | Y | Y | Y | Y | Y | Y | Y | ? |
return | Y | Y | Y | Y | Y | Y | Y | ? |
with | Y | Y | Y | Y | Y | Y | Y | ? |
switch | Y | Y | Y | Y | Y | Y | Y | ? |
throw | Y | Y | Y | Y | Y | Y | Y | ? |
try | Y | Y | Y | Y | Y | Y | Y | ? |
catch | Y | Y | Y | Y | Y | Y | Y | ? |
finally | Y | Y | 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 1.5 | Firefox 2 | Firefox 3 | Opera 8.5 | Opera 9 | Safari 2 |
---|---|---|---|---|---|---|---|---|
Global | ||||||||
(General) | Y | Y | Y | Y | Y | Y | Y | ? |
NaN | Y | Y | Y | Y | Y | Y | Y | ? |
Infinity | Y | Y | Y | Y | Y | Y | Y | ? |
undefined | Y | Y | Y | Y | Y | Y | Y | ? |
eval() | Y | Y | Y | Y | Y | Y | Y | ? |
parseInt() | Y | Y | Y | Y | Y | Y | Y | ? |
parseFloat() | Y | Y | Y | Y | Y | Y | Y | ? |
isNaN() | Y | Y | Y | Y | Y | Y | Y | ? |
isFinite() | Y | Y | Y | Y | Y | Y | Y | ? |
decodeURI() | Y | Y | Y | Y | Y | Y | Y | ? |
decodeURIComponent() | Y | Y | Y | Y | Y | Y | Y | ? |
encodeURI() | Y | Y | Y | Y | Y | Y | Y | ? |
encodeURIComponent() | Y | Y | Y | Y | Y | Y | Y | ? |
Object | ||||||||
(General) | Y | Y | Y | Y | Y | Y | Y | ? |
constructor | Y | Y | Y | Y | Y | Y | Y | ? |
toString() | Y | Y | Y | Y | Y | Y | Y | ? |
toLocaleString() | Y | Y | Y | Y | Y | Y | Y | ? |
valueOf() | Y | Y | Y | Y | Y | Y | Y | ? |
hasOwnProperty() | Y | Y | Y | Y | Y | Y | Y | ? |
isPrototypeOf() | Y | Y | Y | Y | Y | Y | Y | ? |
prototypeIsEnumerable() | Y | Y | Y | Y | Y | Y | Y | ? |
Function | ||||||||
(General) | Y | Y | Y | Y | Y | Y | Y | ? |
prototype | Y | Y | Y | Y | Y | Y | Y | ? |
constructor | Y | Y | Y | Y | Y | Y | Y | ? |
toString() | Y | Y | Y | Y | Y | Y | Y | ? |
apply() | Y | Y | Y | Y | Y | Y | Y | ? |
call() | Y | Y | Y | Y | Y | Y | Y | ? |
length | Y | Y | Y | Y | Y | Y | Y | ? |
Array | ||||||||
(General) | Y | Y | Y | Y | Y | Y | Y | ? |
prototype | Y | Y | Y | Y | Y | Y | Y | ? |
constructor | Y | Y | Y | Y | Y | Y | Y | ? |
toString() | Y | Y | Y | Y | Y | Y | Y | ? |
toLocaleString() | Y | Y | Y | Y | Y | Y | Y | ? |
concat() | Y | Y | Y | Y | Y | Y | Y | ? |
join() | Y | Y | Y | Y | Y | Y | Y | ? |
pop() | Y | Y | Y | Y | Y | Y | Y | ? |
push() | Y | Y | Y | Y | Y | Y | Y | ? |
reverse() | Y | Y | Y | Y | Y | Y | Y | ? |
shift() | Y | Y | Y | Y | Y | Y | Y | ? |
slice() | Y | Y | Y | Y | Y | Y | Y | ? |
sort() | Y | Y | Y | Y | Y | Y | Y | ? |
splice() | Y | Y | Y | Y | Y | Y | Y | ? |
unshift() | Y | Y | Y | Y | Y | Y | Y | ? |
length | Y | Y | Y | Y | Y | Y | Y | ? |
String | ||||||||
(General) | Y | Y | Y | Y | Y | Y | Y | ? |
prototype | Y | Y | Y | Y | Y | Y | Y | ? |
fromCharCode() | Y | Y | Y | Y | Y | Y | Y | ? |
constructor() | Y | Y | Y | Y | Y | Y | Y | ? |
toString() | Y | Y | Y | Y | Y | Y | Y | ? |
valueOf() | Y | Y | Y | Y | Y | Y | Y | ? |
charAt() | Y | Y | Y | Y | Y | Y | Y | ? |
charCodeAt() | Y | Y | Y | Y | Y | Y | Y | ? |
concat() | Y | Y | Y | Y | Y | Y | Y | ? |
indexOf() | Y | Y | Y | Y | Y | Y | Y | ? |
lastIndexOf() | Y | Y | Y | Y | Y | Y | Y | ? |
localeCompare() | Y | Y | Y | Y | Y | Y | Y | ? |
match() | Y | Y | Y | Y | Y | Y | Y | ? |
replace() | Y | Y | Y | Y | Y | Y | Y | ? |
search() | Y | Y | Y | Y | Y | Y | Y | ? |
slice() | Y | Y | Y | Y | Y | Y | Y | ? |
split() | I | I | Y | Y | Y | Y | Y | ? |
substring() | Y | Y | Y | Y | Y | Y | Y | ? |
toLowerCase() | Y | Y | Y | Y | Y | Y | Y | ? |
toLocaleLowerCase() | Y | Y | Y | Y | Y | Y | Y | ? |
toUpperCase() | Y | Y | Y | Y | Y | Y | Y | ? |
toLocaleUpperCase() | Y | Y | Y | Y | Y | Y | Y | ? |
length | Y | Y | Y | Y | Y | Y | Y | ? |
Boolean | ||||||||
(General) | Y | Y | Y | Y | Y | Y | Y | ? |
prototype | Y | Y | Y | Y | Y | Y | Y | ? |
constructor | Y | Y | Y | Y | Y | Y | Y | ? |
toString() | Y | Y | Y | Y | Y | Y | Y | ? |
valueOf() | Y | Y | Y | Y | Y | Y | Y | ? |
Number | ||||||||
(General) | Y | Y | Y | Y | Y | Y | Y | ? |
prototype | Y | Y | Y | Y | Y | Y | Y | ? |
MAX_VALUE | Y | Y | Y | Y | Y | Y | Y | ? |
MIN_VALUE | Y | Y | Y | Y | Y | Y | Y | ? |
NaN | Y | Y | Y | Y | Y | Y | Y | ? |
NEGATIVE_INFINITY | Y | Y | Y | Y | Y | Y | Y | ? |
POSITIVE_INFINITY | Y | Y | Y | Y | Y | Y | Y | ? |
constructor | Y | Y | Y | Y | Y | Y | Y | ? |
toString() | Y | Y | Y | Y | Y | Y | Y | ? |
toLocaleString() | Y | Y | Y | Y | Y | Y | Y | ? |
valueOf() | Y | Y | Y | Y | Y | Y | Y | ? |
toFixed() | Y | Y | Y | Y | Y | Y | Y | ? |
toExponential() | Y | Y | Y | Y | Y | Y | Y | ? |
toPrecision() | Y | Y | Y | Y | Y | Y | Y | ? |
Math | ||||||||
(General) | Y | Y | Y | Y | Y | Y | Y | ? |
E | Y | Y | Y | Y | Y | Y | Y | ? |
LN10 | Y | Y | Y | Y | Y | Y | Y | ? |
LN2 | Y | Y | Y | Y | Y | Y | Y | ? |
LOG2E | Y | Y | Y | Y | Y | Y | Y | ? |
LOG10E | Y | Y | Y | Y | Y | Y | Y | ? |
PI | Y | Y | Y | Y | Y | Y | Y | ? |
SQRT1_2 | Y | Y | Y | Y | Y | Y | Y | ? |
SQRT2 | Y | Y | Y | Y | Y | Y | Y | ? |
abs() | Y | Y | Y | Y | Y | Y | Y | ? |
acos() | Y | Y | Y | Y | Y | Y | Y | ? |
asin() | Y | Y | Y | Y | Y | Y | Y | ? |
atan() | Y | Y | Y | Y | Y | Y | Y | ? |
atan2() | Y | Y | Y | Y | Y | Y | Y | ? |
ceil() | Y | Y | Y | Y | Y | Y | Y | ? |
cos() | Y | Y | Y | Y | Y | Y | Y | ? |
exp() | Y | Y | Y | Y | Y | Y | Y | ? |
floor() | Y | Y | Y | Y | Y | Y | Y | ? |
log() | Y | Y | Y | Y | Y | Y | Y | ? |
max() | Y | Y | Y | Y | Y | Y | Y | ? |
min() | Y | Y | Y | Y | Y | Y | Y | ? |
pow() | Y | Y | Y | Y | Y | Y | Y | ? |
random() | Y | Y | Y | Y | Y | Y | Y | ? |
round() | Y | Y | Y | Y | Y | Y | Y | ? |
sin() | Y | Y | Y | Y | Y | Y | Y | ? |
sqrt() | Y | Y | Y | Y | Y | Y | Y | ? |
tan() | Y | Y | Y | Y | Y | Y | Y | ? |
Date | ||||||||
(General) | Y | Y | Y | Y | Y | Y | Y | ? |
prototype | Y | Y | Y | Y | Y | Y | Y | ? |
constructor | Y | Y | Y | Y | Y | Y | Y | ? |
toString() | Y | Y | Y | Y | Y | Y | Y | ? |
toDateString() | Y | Y | Y | Y | Y | Y | Y | ? |
toTimeString() | Y | Y | Y | Y | Y | Y | Y | ? |
toLocaleString() | Y | Y | Y | Y | Y | Y | Y | ? |
toLocaleDateString() | Y | Y | Y | Y | Y | Y | Y | ? |
toLocaleTimeString() | Y | Y | Y | Y | Y | Y | Y | ? |
valueOf() | Y | Y | Y | Y | Y | Y | Y | ? |
getTime() | Y | Y | Y | Y | Y | Y | Y | ? |
getFullYear() | Y | Y | Y | Y | Y | Y | Y | ? |
getUTCFullYear() | Y | Y | Y | Y | Y | Y | Y | ? |
getMonth() | Y | Y | Y | Y | Y | Y | Y | ? |
getUTCMonth() | Y | Y | Y | Y | Y | Y | Y | ? |
getDate() | Y | Y | Y | Y | Y | Y | Y | ? |
getUTCDate() | Y | Y | Y | Y | Y | Y | Y | ? |
getDay() | Y | Y | Y | Y | Y | Y | Y | ? |
getUTCDay() | Y | Y | Y | Y | Y | Y | Y | ? |
getHours() | Y | Y | Y | Y | Y | Y | Y | ? |
getUTCHours() | Y | Y | Y | Y | Y | Y | Y | ? |
getMinutes() | Y | Y | Y | Y | Y | Y | Y | ? |
getUTCMinutes() | Y | Y | Y | Y | Y | Y | Y | ? |
getSeconds() | Y | Y | Y | Y | Y | Y | Y | ? |
getUTCSeconds() | Y | Y | Y | Y | Y | Y | Y | ? |
getMilliseconds() | Y | Y | Y | Y | Y | Y | Y | ? |
getUTCMilliseconds() | Y | Y | Y | Y | Y | Y | Y | ? |
getTimezoneOffset() | Y | Y | Y | Y | Y | Y | Y | ? |
setTime() | Y | Y | Y | Y | Y | Y | Y | ? |
setMilliseconds() | Y | Y | Y | Y | Y | Y | Y | ? |
setUTCMilliseconds() | Y | Y | Y | Y | Y | Y | Y | ? |
setSeconds() | Y | Y | Y | Y | Y | Y | Y | ? |
setUTCSeconds() | Y | Y | Y | Y | Y | Y | Y | ? |
setMinutes() | Y | Y | Y | Y | Y | Y | Y | ? |
setUTCMinutes() | Y | Y | Y | Y | Y | Y | Y | ? |
setHours() | Y | Y | Y | Y | Y | Y | Y | ? |
setUTCHours() | Y | Y | Y | Y | Y | Y | Y | ? |
setDate() | Y | Y | Y | Y | Y | Y | Y | ? |
setUTCDate() | Y | Y | Y | Y | Y | Y | Y | ? |
setMonth() | Y | Y | Y | Y | Y | Y | Y | ? |
setUTCMonth() | Y | Y | Y | Y | Y | Y | Y | ? |
setFullYear() | Y | Y | Y | Y | Y | Y | Y | ? |
setUTCFullYear() | Y | Y | Y | Y | Y | Y | Y | ? |
toUTCString() | Y | Y | Y | Y | Y | Y | Y | ? |
RegExp | ||||||||
(General) | Y | Y | Y | Y | Y | Y | Y | ? |
prototype | Y | Y | Y | Y | Y | Y | Y | ? |
constructor | Y | Y | Y | Y | Y | Y | Y | ? |
exec() | Y | Y | Y | Y | Y | Y | Y | ? |
test() | Y | Y | Y | Y | Y | Y | Y | ? |
toString() | Y | Y | Y | Y | Y | Y | Y | ? |
source | Y | Y | Y | Y | Y | Y | Y | ? |
global | Y | Y | Y | Y | Y | Y | Y | ? |
ignoreCase | Y | Y | Y | Y | Y | Y | Y | ? |
multiline | Y | Y | Y | Y | Y | Y | Y | ? |
lastIndex | Y | Y | Y | Y | Y | Y | Y | ? |
Error | ||||||||
(General) | Y | Y | Y | Y | Y | Y | Y | ? |
prototype | Y | Y | Y | Y | Y | Y | Y | ? |
constructor | Y | Y | Y | Y | Y | Y | Y | ? |
name | Y | Y | Y | Y | Y | Y | Y | ? |
message | Y | Y | Y | Y | Y | Y | Y | ? |
toString() | Y | Y | Y | Y | Y | Y | Y | ? |