JavaScript引擎比较

下表比较在网页浏览器内使用一些知名JavaScript引擎对标准的支持。

表格解说

完整列表可参见ECMAScript引擎列表

这些值指示了在每个引擎中对给定项目的支持程度。缺省的,默认为这个引擎的最新版本。但是,可以列出特定版本号;当这指示完全支持的时候,它是这个引擎完全支持这个项目的最初版本。

含义
完全支持
从未支持
部份 只支持某些值
不正確 在所有情况下未正确实现
實驗性質 可能不完全或有缺陷
每日构建 目前正在开发;可预期完全支持
依情況 只在特定条件下支持
抛弃 不再支持

ECMAScript版本支持

下表中的版本号为排版引擎的版本号。JavaScript的版本号就是JavaScript引擎SpiderMonkey的版本号,在ECMAScript Edition 5之后不再延续跟进。

Trident Gecko WebKit Presto Blink
ECMAScript引擎名称 JScript
Chakra
SpiderMonkey
TraceMonkey
JägerMonkey
IonMonkey
JavaScriptCore
SquirrelFish Extreme
Linear B
Futhark
Carakan
V8
ECMAScript Edition 3
等价于JavaScript 1.5
1.7[1] 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
ECMAScript Edition 5
等价于JavaScript 1.8.5
7.0 2.0 部份
E4X 废弃于17[2]
ECMAScript Edition 6
又称ECMAScript 2015
部份 部份 部份
ECMAScript 2016扩展
ES新近版本2016+扩展 部份 部份

标准库

全局对象

Trident Gecko WebKit Presto Blink
值属性
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
constructor属性
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对象

Trident Gecko WebKit Presto Blink
调用为函数
Object([value])
调用为constructor
new Object([value]) 4.0
属性
prototype 4.0
prototype的属性
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

Function对象

Trident Gecko WebKit Presto Blink
调用为函数
Function([[p1 [, p2 [, ...]],] body]) ? ?
调用为constructor
new Function([[p1 [, p2 [, ...]],] body]) 4.0 1.0 1.0
属性
length ? 1.0
prototype 4.0 1.0 1.0
prototype的属性
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

Array对象

Trident Gecko WebKit Presto Blink
调用为函数
Array([item1 [, item2 [, ...]]])
调用为constructor
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
prototype的属性
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[3] 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

String对象

Trident Gecko WebKit Presto Blink
调用为函数
String([value])
调用为constructor
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
prototype的属性
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
prototype的额外属性
substr(start, length) 4.0 1.0 1.0
实例的属性
length 3.0 1.0 1.0

Boolean对象

Trident Gecko WebKit Presto Blink
调用为函数
Boolean([value])
调用为constructor
new Boolean([value]) 3.0
属性
prototype 4.0
prototype的属性
constructor 4.0
toString() 4.0
valueOf() 4.0

Number对象

Trident Gecko WebKit Presto
调用为函数
Number([value]) ? ?
调用为constructor
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
prototype的属性
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

Math对象

Trident Gecko WebKit Presto
值属性
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

Date对象

Trident Gecko WebKit Presto
调用为函数
Date ([year [, month [, date [, hours [, minutes [, seconds [, ms ]]]]]]]) ? ? ? ?
调用为constructor
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
prototype的属性
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
prototype的额外属性
getYear() 3.0 1.0 1.0
setYear(year) 3.0 1.0 1.0
toGMTString() 4.0 1.0 1.0

RegExp对象

Trident Gecko WebKit Presto
调用为函数
RegExp (pattern, flags) ? ? ? ?
调用为constructor
new RegExp (pattern, flags) 4.0 1.0 1.0
属性
prototype 4.0 1.0 1.0
prototype的属性
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

Error对象

Trident Gecko WebKit Presto
调用为函数
Error (message) ? ? ? ?
调用为constructor
new Error (message) 5.0 1.0 1.0
属性
prototype 5.0 1.0 1.0
prototype的属性
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对象

Trident Gecko WebKit Presto
调用为函数
EvalError (message) ? 1.0 ?
RangeError (message) ? 1.0 ?
ReferenceError (message) ? 1.0 ?
SyntaxError (message) ? 1.0 ?
TypeError (message) ? 1.0 ?
URIError (message) ? 1.0 ?
调用为constructor
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 ? ?
prototype的属性
constructor ? 1.0 ? ?
name ? 1.0 ?
message ? 1.0 ?

引用

  1. ^ Gecko versions and application versions页面存档备份,存于互联网档案馆).
  2. ^ E4X, Mozilla, [2019-05-18], (原始内容存档于2013-09-30) 
  3. ^ ECMAScript 5 Arrays, Microsoft, [2019-05-18], (原始内容存档于2010-06-27) 

延伸阅读

外部链接