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