Confronto di motori JavaScript - Comparison of JavaScript engines

Le tabelle seguenti mettono a confronto il supporto degli standard per alcuni notevoli motori JavaScript / ECMAScript utilizzati nei browser web .

Spiegazione delle tabelle

Vedere Elenco dei motori ECMAScript per un elenco completo.

Valori

Indicano il livello di supporto per l'elemento specificato in ciascun motore. Per impostazione predefinita, è implicita la versione più recente del motore. Tuttavia, è possibile elencare un numero di versione specifico; quando questo indica il supporto completo, è la versione iniziale del motore che supporta completamente l'elemento.

Leggenda
Valore Senso
Completamente supportato
No Non è mai stato supportato
Parziale Sono supportati solo alcuni valori
Sbagliato Non implementato correttamente in tutti i casi
Sperimentale Potrebbe essere incompleto o difettoso
Costruzione notturna Attualmente in fase di sviluppo; è previsto il pieno supporto
Dipende Supportato solo per le condizioni specificate
Caduto Non più supportato

Supporto della versione ECMAScript

Panoramica del supporto della versione ECMAScript
Motore di layout del browser Tridente Geco WebKit Presto Blink
Motore JavaScript corrispondente JScript / Chakra Ragno scimmia JavaScriptCore Lineare B / Futhark / Carakan V8
ECMAScript Edition 3 0.6 1.0
ECMAScript Edition 5 5.0 2.0 Parziale
ECMAScript Edition 6
Estensioni JavaScript 1.5 No 0.6 1.0
Estensioni JavaScript 1.6
(escluso E4X )
No 1.8 Parziale Parziale Parziale
Estensioni JavaScript 1.7 No 1.8.1 No Parziale No
Estensioni JavaScript 1.8 No 1.9 Parziale No Parziale
Estensioni JavaScript 1.8.1 No 1.9.1 No No No
Estensioni JScript .NET No No No No No
Estensioni ActionScript No No No No No
E4X No Caduto No No No

Libreria standard

Oggetto globale

Implementazione di oggetti globali
Oggetto globale Tridente Geco WebKit Presto Blink
Proprietà valore
NaN 4.0 0.6
Infinity 4.0 0.6
undefined 5.5 0.6
Proprietà della funzione
eval(x) 3.0 0.6
parseInt(string [, radix]) 3.0 0.6
parseFloat(string) 3.0 0.6
isNaN(number) 4.0 0.6
isFinite(number) 4.0 0.6
Funzioni di gestione degli URI
decodeURI(encodedURI) 5.5 0.6
decodeURIComponent(encodedURIComponent) 5.5 0.6
encodeURI(uri) 5.5 0.6
encodeURIComponent(uriComponent) 5.5 0.6
Proprietà del costruttore
Object 4.0
Function 4.0
Array 4.0
String 3.0
Boolean 3.0
Number 3.0
Date 3.0
RegExp 4.0
Error 5.0
EvalError 5.0
RangeError 5.0
ReferenceError 5.0
SyntaxError 5.0
TypeError 5.0
URIError 5.0
Altre proprietà
Math 3.0
Proprietà aggiuntive
escape(string) 3.0
unescape(string) 3.0

Oggetto Oggetto

Implementazione di oggetti oggetto
Oggetto Oggetto Tridente Geco WebKit Presto Blink
Chiamato come funzione
Object([value])
Chiamato come costruttore
new Object([value]) 4.0
Proprietà
prototype 4.0
Proprietà del prototipo
constructor 4.0
toString() 4.0
toLocaleString() 4.0
valueOf() 4.0
hasOwnProperty(V) 5.5 3
isPrototypeOf(V) 5.5 3
propertyIsEnumerable(V) 5.5 3

Oggetto funzione

Implementazione di oggetti funzione
Oggetto funzione Tridente Geco WebKit Presto Blink
Chiamato come funzione
Function([[p1 [, p2 [, ...]],] body]) ? ?
Chiamato come costruttore
new Function([[p1 [, p2 [, ...]],] body]) 4.0 1.0 1.0
Proprietà
length ? 1.0
prototype 4.0 1.0 1.0
Proprietà del prototipo
length ? 1.0 ?
constructor 4.0 1.0 1.0
toString() 4.0 1.0 1.0
apply(thisArg, argArray) 4.0 1.0 1.0
call(thisArg [, arg1 [, arg2 [, ...]]]) 4.0 1.0 1.0
Proprietà delle istanze
length 4.0 1.0 1.0
prototype 4.0 1.0 1.0

Oggetto array

Implementazione di oggetti array
Oggetto array Tridente Geco WebKit Presto Blink
Chiamato come funzione
Array([item1 [, item2 [, ...]]])
Chiamato come costruttore
new Array([item1, item2 [, ...]]) 4.0 1.0 1.0
new Array(len) 4.0 1.0 1.0
Proprietà
prototype 4.0 1.0 1.0
Proprietà del prototipo
constructor 4.0 1.0 1.0
toString() 4.0 1.0 1.0
toLocaleString() 5.5 1.0 1.0
concat([item1 [, item2 [,...]]]) 4.0 1.0 1.0
join(separator) 4.0 1.0 1.0
pop() 5.5 1.0 1.0
push([item1 [, item2 [,...]]]) 5.5 1.0 1.0
reverse() 4.0 1.0 1.0
shift() 5.5 1.0 1.0
slice(start, end) 4.0 1.0 1.0
sort(comparefn) 4.0 1.0 1.0
splice(start, deleteCount [, item1 [, item2 [, ...]]]) 5.5 1.0 1.0
unshift([item1 [, item2 [, ...]]]) 5.5 1.0 1.0
indexOf(searchElement[, fromIndex]) 9.0 1.8 522 2.1
lastIndexOf(searchElement[, fromIndex]) 1.8 522 2.1
filter(callback[, thisObject]) 1.8 522 2.1
forEach(callback[, thisObject]) 1.8 522 2.1
every(callback[, thisObject]) 1.8 522 2.1
map(callback[, thisObject]) 1.8 522 2.1
some(callback[, thisObject]) 1.8 522 2.1
reduce(callback[, initialValue]) 1.9 528 2.5.22
reduceRight(callback[, initialValue]) 1.9 528 2.5.22
Proprietà delle istanze
length 4.0 1.0 1.0

Oggetto stringa

Implementazione di oggetti stringa
Oggetto stringa Tridente Geco WebKit Presto Blink
Chiamato come funzione
String([value])
Chiamato come costruttore
new String([value]) 3.0 1.0 1.0
Proprietà
prototype 4.0 1.0 1.0
fromCharCode([char0 [, char1 [, ...]]]) 4.0 1.0 1.0
Proprietà del prototipo
constructor 4.0 1.0 1.0
toString() 3.0 1.0 1.0
valueOf() 3.0 1.0 1.0
charAt(pos) 3.0 1.0 1.0
charCodeAt(pos) 5.5 1.0 1.0
concat([string1 [, string2 [, ...]]]) 4.0 1.0 1.0
indexOf(searchString, position) 3.0 1.0 1.0
lastIndexOf(searchString, position) 3.0 1.0 1.0
localeCompare(that) 5.5 1.0 1.0
match(regexp) 4.0 1.0 1.0
replace(searchValue, replaceValue) 3.0 1.0 1.0
search(regexp) 4.0 1.0 1.0
slice(start, end) 4.0 1.0 1.0
split(separator, limit) 4.0 1.0 1.0
substring(start, end) 3.0 1.0 1.0
toLowerCase() 3.0 1.0 1.0
toLocaleLowerCase(comparefn) 3.0 1.0 1.0
toUpperCase() 3.0 1.0 1.0
toLocaleUpperCase() 3.0 1.0 1.0
Proprietà aggiuntive del prototipo
substr(start, length) 4.0 1.0 1.0
Proprietà delle istanze
length 3.0 1.0 1.0

Oggetto booleano

Implementazione di oggetti booleani
Oggetto booleano Tridente Geco WebKit Presto Blink
Chiamato come funzione
Boolean([value])
Chiamato come costruttore
new Boolean([value]) 3.0
Proprietà
prototype 4.0
Proprietà del prototipo
constructor 4.0
toString() 4.0
valueOf() 4.0

Oggetto numero

Implementazione di oggetti numerici
Oggetto numero Tridente Geco WebKit Presto
Chiamato come funzione
Number([value]) ? ?
Chiamato come costruttore
new Number([value]) 3.0 1.0 1.0
Proprietà
prototype 4.0 1.0 1.0
MAX_VALUE 4.0 1.0 1.0
MIN_VALUE 4.0 1.0 1.0
NaN 4.0 1.0 1.0
NEGATIVE_INFINITY 4.0 1.0 1.0
POSITIVE_INFINITY 4.0 1.0 1.0
Proprietà del prototipo
constructor 4.0 1.0 1.0
toString([radix]) 4.0 1.0 1.0
toLocaleString() 5.5 1.0 1.0
valueOf() 4.0 1.0 1.0
toFixed(fractionDigits) 5.5 1.0 1.0
toExponential(fractionDigits) 5.5 1.0 1.0
toPrecision(precision) 5.5 1.0 1.0

Oggetto matematico

Implementazione di oggetti matematici
Oggetto matematico Tridente Geco WebKit Presto
Proprietà valore
E 3.0 1.0 1.0
LN10 3.0 1.0 1.0
LN2 3.0 1.0 1.0
LOG2E 3.0 1.0 1.0
LOG10E 3.0 1.0 1.0
PI
SQRT1_2 3.0 1.0 1.0
SQRT2
Proprietà della funzione
abs(x) 3.0 1.0 1.0
acos(x) 3.0 1.0 1.0
asin(x) 3.0 1.0 1.0
atan(x) 3.0 1.0 1.0
atan2(y, x) 3.0 1.0 1.0
ceil(x) 3.0 1.0 1.0
cos(x) 3.0 1.0 1.0
exp(x) 3.0 1.0 1.0
floor(x) 3.0 1.0 1.0
log(x) 3.0 1.0 1.0
max([value1 [, value2 [, ...]]]) 3.0 1.0 1.0
min([value1 [, value2 [, ...]]]) 3.0 1.0 1.0
pow(x, y) 3.0 1.0 1.0
random() 3.0 1.0 1.0
round(x) 3.0 1.0 1.0
sin(x) 3.0 1.0 1.0
sqrt(x) 3.0 1.0 1.0
tan(x) 3.0 1.0 1.0

Oggetto data

Implementazione di oggetti data
Oggetto data Tridente Geco WebKit Presto
Chiamato come funzione
Date ([year [, month [, date [, hours [, minutes [, seconds [, ms ]]]]]]]) ? ? ? ?
Chiamato come costruttore
new Date (year, month [, date [, hours [, minutes [, seconds [, ms ]]]]]) 4.0 1.0 1.0
new Date (value) 4.0 1.0 1.0
new Date () 4.0 1.0 1.0
Proprietà
prototype 4.0 1.0 1.0
parse(string) 3.0 1.0 1.0
UTC (year, month [, date [, hours [, minutes [, seconds [, ms ]]]]]) 3.0 1.0 1.0
Proprietà del prototipo
constructor 4.0 1.0 1.0
toString() 4.0 1.0 1.0
toDateString() 4.0 1.0 1.0
toTimeString() 4.0 1.0 1.0
toLocaleString() 4.0 1.0 1.0
toLocaleDateString() 4.0 1.0 1.0
toLocaleTimeString() 4.0 1.0 1.0
valueOf() 4.0 1.0 1.0
getTime() 3.0 1.0 1.0
getFullYear() 4.0 1.0 1.0
getMonth() 3.0 1.0 1.0
getUTCMonth() 4.0 1.0 1.0
getDate() 3.0 1.0 1.0
getUTCDate() 4.0 1.0 1.0
getDay() 3.0 1.0 1.0
getUTCDay() 4.0 1.0 1.0
getHours() 3.0 1.0 1.0
getUTCHours() 4.0 1.0 1.0
getMinutes() 3.0 1.0 1.0
getUTCMinutes() 4.0 1.0 1.0
getSeconds() 3.0 1.0 1.0
getUTCSeconds() 4.0 1.0 1.0
getMilliseconds() 4.0 1.0 1.0
getUTCMilliseconds() 4.0 1.0 1.0
getTimezoneOffset() 4.0 1.0 1.0
setTime(time) 3.0 1.0 1.0
setMilliseconds(ms) 4.0 1.0 1.0
setUTCMilliseconds(ms) 4.0 1.0 1.0
setSeconds(sec [, ms]) 3.0 1.0 1.0
setUTCSeconds(sec [, ms]) 4.0 1.0 1.0
setMinutes(min [, sec [, ms]]) 3.0 1.0 1.0
setUTCMinutes(min [, sec [, ms]]) 4.0 1.0 1.0
setHours(hour [, min [, sec [, ms]]]) 4.0 1.0 1.0
setUTCHours(hour [, min [, sec [, ms]]]) 4.0 1.0 1.0
setDate(date) 4.0 1.0 1.0
setUTCDate(date) 4.0 1.0 1.0
setMonth(month [, date]) 3.0 1.0 1.0
setUTCMonth(month [, date]) 4.0 1.0 1.0
setFullYear(year [, month [, date]]) 4.0 1.0 1.0
setUTCFullYear(year [, month [, date]]) 4.0 1.0 1.0
toUTCString() 4.0 1.0 1.0
Proprietà aggiuntive del prototipo
getYear() 3.0 1.0 1.0
setYear(year) 3.0 1.0 1.0
toGMTString() 4.0 1.0 1.0

Oggetto RegExp

Implementazione di oggetti RegExp
Oggetto RegExp Tridente Geco WebKit Presto
Chiamato come funzione
RegExp (pattern, flags) ? ? ? ?
Chiamato come costruttore
new RegExp (pattern, flags) 4.0 1.0 1.0
Proprietà
prototype 4.0 1.0 1.0
Proprietà del prototipo
constructor 4.0 1.0 1.0
exec(string) 4.0 1.0 1.0
test(string) 4.0 1.0 1.0
toString() 4.0 1.0 1.0
Proprietà delle istanze
source 4.0 1.0 1.0
global 4.0 1.0 1.0
ignoreCase 5.5 1.0 1.0
multiline 5.5 1.0 1.0
lastIndex 4.0 1.0 1.0

Oggetto errore

Implementazione di oggetti di errore
Oggetto errore Tridente Geco WebKit Presto
Chiamato come funzione
Error (message) ? ? ? ?
Chiamato come costruttore
new Error (message) 5.0 1.0 1.0
Proprietà
prototype 5.0 1.0 1.0
Proprietà del prototipo
constructor 5.0 1.0 1.0
name 5.5 1.0 1.0
message 5.5 1.0 1.0
toString() 5.0 1.0 1.0

Oggetti NativeError

Implementazione di oggetti NativeError
Oggetto NativeError Tridente Geco WebKit Presto
Chiamato come funzione
EvalError (message) ? 1.0 ?
RangeError (message) ? 1.0 ?
ReferenceError (message) ? 1.0 ?
SyntaxError (message) ? 1.0 ?
TypeError (message) ? 1.0 ?
URIError (message) ? 1.0 ?
Chiamato come costruttore
new EvalError (message) ? 1.0 ?
new RangeError (message) ? 1.0 ?
new ReferenceError (message) ? 1.0 ?
new SyntaxError (message) ? 1.0 ?
new TypeError (message) ? 1.0 ?
new URIError (message) ? 1.0 ?
Proprietà
prototype ? 1.0 ? ?
Proprietà del prototipo
constructor ? 1.0 ? ?
name ? 1.0 ?
message ? 1.0 ?

Riferimenti

Ulteriore lettura

link esterno

  • Webdevout : copre principalmente i browser Windows. Test approfonditi dei bug.