Сравнение движков JavaScript - Comparison of JavaScript engines

В следующих таблицах сравнивается поддержка стандартов для некоторых известных механизмов JavaScript / ECMAScript, используемых в веб-браузерах .

Пояснения к таблицам

См. Полный список в разделе Список движков ECMAScript .

Значения

Они указывают уровень поддержки данного элемента в каждом движке. По умолчанию подразумевается самая последняя версия движка. Однако может быть указан конкретный номер версии; когда это означает полную поддержку, это первоначальная версия движка, полностью поддерживающая элемент.

Легенда
Значение Имея в виду
да Полностью поддерживается
Нет Никогда не поддерживался
Частичное Поддерживаются только некоторые значения
Неверно Не во всех случаях реализовано правильно
Экспериментальный Может быть неполным или глючным
Ночная сборка В настоящее время в разработке; ожидается полная поддержка
Зависит от Поддерживается только для указанных условий
Упавший Больше не поддерживается

Поддержка версии ECMAScript

Обзор поддержки версии ECMAScript
Механизм компоновки браузера Трезубец Геккон WebKit Престо Мигать
Соответствующий движок JavaScript JScript / Chakra ПаукОбезьяна JavaScriptCore Линейное письмо B / Futhark / Carakan V8
ECMAScript, выпуск 3 да 0,6 да 1.0 да
ECMAScript, выпуск 5 5.0 2.0 Частичное да да
ECMAScript, выпуск 6
Расширения JavaScript 1.5 Нет 0,6 да 1.0 да
Расширения JavaScript 1.6
(кроме E4X )
Нет 1,8 Частичное Частичное Частичное
Расширения JavaScript 1.7 Нет 1.8.1 Нет Частичное Нет
Расширения JavaScript 1.8 Нет 1.9 Частичное Нет Частичное
Расширения JavaScript 1.8.1 Нет 1.9.1 Нет Нет Нет
Расширения JScript .NET Нет Нет Нет Нет Нет
Расширения ActionScript Нет Нет Нет Нет Нет
E4X Нет Упавший Нет Нет Нет

Стандартная библиотека

Глобальный объект

Реализация глобальных объектов
Глобальный объект Трезубец Геккон WebKit Престо Мигать
Свойства значения
NaN 4.0 0,6 да да да
Infinity 4.0 0,6 да да да
undefined 5.5 0,6 да да да
Свойства функции
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 да да да
Функции обработки 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 да да да
Свойства конструктора
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 да да да да
Прочие свойства
Math 3.0 да да да да
Дополнительные свойства
escape(string) 3.0 да да да да
unescape(string) 3.0 да да да да

Объект Object

Реализация объектных объектов
Объект Object Трезубец Геккон WebKit Престо Мигать
Вызывается как функция
Object([value]) да да да да да
Вызывается как конструктор
new Object([value]) 4.0 да да да да
Характеристики
prototype 4.0 да да да да
Свойства прототипа
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 да да

Функциональный объект

Реализация функциональных объектов
Функциональный объект Трезубец Геккон WebKit Престо Мигать
Вызывается как функция
Function([[p1 [, p2 [, ...]],] body]) ? да да ? да
Вызывается как конструктор
new Function([[p1 [, p2 [, ...]],] body]) 4.0 1.0 да 1.0 да
Характеристики
length ? 1.0 да да да
prototype 4.0 1.0 да 1.0 да
Свойства прототипа
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 да
Свойства экземпляров
length 4.0 1.0 да 1.0 да
prototype 4.0 1.0 да 1.0 да

Объект массива

Реализация объектов массива
Объект массива Трезубец Геккон WebKit Престо Мигать
Вызывается как функция
Array([item1 [, item2 [, ...]]]) да да да да да
Вызывается как конструктор
new Array([item1, item2 [, ...]]) 4.0 1.0 да 1.0 да
new Array(len) 4.0 1.0 да 1.0 да
Характеристики
prototype 4.0 1.0 да 1.0 да
Свойства прототипа
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 да
Свойства экземпляров
length 4.0 1.0 да 1.0 да

Строковый объект

Реализация строковых объектов
Строковый объект Трезубец Геккон WebKit Престо Мигать
Вызывается как функция
String([value]) да да да да да
Вызывается как конструктор
new String([value]) 3.0 1.0 да 1.0 да
Характеристики
prototype 4.0 1.0 да 1.0 да
fromCharCode([char0 [, char1 [, ...]]]) 4.0 1.0 да 1.0 да
Свойства прототипа
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 да
Дополнительные свойства прототипа
substr(start, length) 4.0 1.0 да 1.0 да
Свойства экземпляров
length 3.0 1.0 да 1.0 да

Логический объект

Реализация логических объектов
Логический объект Трезубец Геккон WebKit Престо Мигать
Вызывается как функция
Boolean([value]) да да да да да
Вызывается как конструктор
new Boolean([value]) 3.0 да да да да
Характеристики
prototype 4.0 да да да да
Свойства прототипа
constructor 4.0 да да да да
toString() 4.0 да да да да
valueOf() 4.0 да да да да

Номер объекта

Реализация числовых объектов
Номер объекта Трезубец Геккон WebKit Престо
Вызывается как функция
Number([value]) ? да да ?
Вызывается как конструктор
new Number([value]) 3.0 1.0 да 1.0
Характеристики
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
Свойства прототипа
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

Математический объект

Реализация математических объектов
Математический объект Трезубец Геккон WebKit Престо
Свойства значения
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 да да да да
Свойства функции
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

Дата объект

Реализация объектов даты
Дата объекта Трезубец Геккон WebKit Престо
Вызывается как функция
Date ([year [, month [, date [, hours [, minutes [, seconds [, ms ]]]]]]]) ? ? ? ?
Вызывается как конструктор
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
Характеристики
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
Свойства прототипа
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
Дополнительные свойства прототипа
getYear() 3.0 1.0 да 1.0
setYear(year) 3.0 1.0 да 1.0
toGMTString() 4.0 1.0 да 1.0

Объект RegExp

Реализация объектов RegExp
Объект RegExp Трезубец Геккон WebKit Престо
Вызывается как функция
RegExp (pattern, flags) ? ? ? ?
Вызывается как конструктор
new RegExp (pattern, flags) 4.0 1.0 да 1.0
Характеристики
prototype 4.0 1.0 да 1.0
Свойства прототипа
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
Свойства экземпляров
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

Объект ошибки

Реализация объектов ошибок
Объект ошибки Трезубец Геккон WebKit Престо
Вызывается как функция
Error (message) ? ? ? ?
Вызывается как конструктор
new Error (message) 5.0 1.0 да 1.0
Характеристики
prototype 5.0 1.0 да 1.0
Свойства прототипа
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

Объекты NativeError

Реализация объектов NativeError
NativeError объект Трезубец Геккон WebKit Престо
Вызывается как функция
EvalError (message) ? 1.0 да ?
RangeError (message) ? 1.0 да ?
ReferenceError (message) ? 1.0 да ?
SyntaxError (message) ? 1.0 да ?
TypeError (message) ? 1.0 да ?
URIError (message) ? 1.0 да ?
Вызывается как конструктор
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 да ?
Характеристики
prototype ? 1.0 ? ?
Свойства прототипа
constructor ? 1.0 ? ?
name ? 1.0 да ?
message ? 1.0 да ?

Рекомендации

дальнейшее чтение

Внешние ссылки

  • Webdevout - в основном охватывает браузеры Windows. Обширное тестирование ошибок.