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) 

延伸閱讀[編輯]

外部連結[編輯]