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) 

延伸閱讀 編輯

外部連結 編輯