JavaScript引擎比较

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

表格解说
完整列表可参见ECMAScript引擎列表。
值
这些值指示了在每个引擎中对给定项目的支持程度。缺省的，默认为这个引擎的最新版本。但是，可以列出特定版本号；当这指示完全支持的时候，它是这个引擎完全支持这个项目的最初版本。
 值 含义  完全支持  从未支持  只支持某些值  在所有情况下未正确实现  可能不完全或有缺陷  目前正在开发；可预期完全支持  只在特定条件下支持  不再支持

ECMAScript版本支持
下表中的版本号为排版引擎的版本号。JavaScript的版本号就是JavaScript引擎中SpiderMonkey的版本号，在ECMAScript Edition 5之后不再延续跟进。
 Trident Gecko WebKit Presto Blink ECMAScript引擎名称 JScriptChakra SpiderMonkeyTraceMonkeyJägerMonkeyIonMonkey JavaScriptCoreSquirrelFish Extreme Linear BFutharkCarakan V8 ECMAScript Edition 3等价于JavaScript 1.5  Gecko versions and application versions .    JavaScript 1.6 扩展(排除E4X)      JavaScript 1.7 扩展      JavaScript 1.8 扩展      JavaScript 1.8.1 扩展      ECMAScript Edition 5等价于JavaScript 1.8.5      E4X      ECMAScript Edition 6又称ECMAScript 2015      ECMAScript 2016扩展      ES新近版本2016+扩展     

标准库
全局对象
 Trident Gecko WebKit Presto Blink 值属性 NaN      Infinity      undefined      函数属性 eval(x)      parseInt(string [, radix])      parseFloat(string)      isNaN(number)      isFinite(number)      URI处理函数 decodeURI(encodedURI)      decodeURIComponent(encodedURIComponent)      encodeURI(uri)      encodeURIComponent(uriComponent)      constructor属性 Object      Function      Array      String      Boolean      Number      Date      RegExp      Error      EvalError      RangeError      ReferenceError      SyntaxError      TypeError      URIError      其他属性 Math      额外属性 escape(string)      unescape(string)     

Object对象
 Trident Gecko WebKit Presto Blink 调用为函数 Object([value])      调用为constructor new Object([value])      属性 prototype      prototype的属性 constructor      toString()      toLocaleString()      valueOf()      hasOwnProperty(V)      isPrototypeOf(V)      propertyIsEnumerable(V)     

Function对象
 Trident Gecko WebKit Presto Blink 调用为函数 Function([[p1 [, p2 [, ...]],] body]) ?   ?  调用为constructor new Function([[p1 [, p2 [, ...]],] body])      属性 length ?     prototype      prototype的属性 length ?   ?  constructor      toString()      apply(thisArg, argArray)      call(thisArg [, arg1 [, arg2 [, ...]]])      实例的属性 length      prototype     

Array对象
 Trident Gecko WebKit Presto Blink 调用为函数 Array([item1 [, item2 [, ...]]])      调用为constructor new Array([item1, item2 [, ...]])      new Array(len)      属性 prototype      prototype的属性 constructor      toString()      toLocaleString()      concat([item1 [, item2 [,...]]])      join(separator)      pop()      push([item1 [, item2 [,...]]])      reverse()      shift()      slice(start, end)      sort(comparefn)      splice(start, deleteCount [, item1 [, item2 [, ...]]])      unshift([item1 [, item2 [, ...]]])      indexOf(searchElement[, fromIndex]) rowspan="9"      lastIndexOf(searchElement[, fromIndex])     filter(callback[, thisObject])     forEach(callback[, thisObject])     every(callback[, thisObject])     map(callback[, thisObject])     some(callback[, thisObject])     reduce(callback[, initialValue])     reduceRight(callback[, initialValue])     实例的属性 length     

String对象
 Trident Gecko WebKit Presto Blink 调用为函数 String([value])      调用为constructor new String([value])      属性 prototype      fromCharCode([char0 [, char1 [, ...]]])      prototype的属性 constructor      toString()      valueOf()      charAt(pos)      charCodeAt(pos)      concat([string1 [, string2 [, ...]]])      indexOf(searchString, position)      lastIndexOf(searchString, position)      localeCompare(that)      match(regexp)      replace(searchValue, replaceValue)      search(regexp)      slice(start, end)      split(separator, limit)      substring(start, end)      toLowerCase()      toLocaleLowerCase(comparefn)      toUpperCase()      toLocaleUpperCase()      prototype的额外属性 substr(start, length)      实例的属性 length     

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

Number对象
 Trident Gecko WebKit Presto 调用为函数 Number([value]) ?   ? 调用为constructor new Number([value])     属性 prototype     MAX_VALUE     MIN_VALUE     NaN     NEGATIVE_INFINITY     POSITIVE_INFINITY     prototype的属性 constructor     toString([radix])     toLocaleString()     valueOf()     toFixed(fractionDigits)     toExponential(fractionDigits)     toPrecision(precision)    

Math对象
 Trident Gecko WebKit Presto 值属性 E     LN10     LN2     LOG2E     LOG10E     PI     SQRT1_2     SQRT2     函数属性 abs(x)     acos(x)     asin(x)     atan(x)     atan2(y, x)     ceil(x)     cos(x)     exp(x)     floor(x)     log(x)     max([value1 [, value2 [, ...]]])     min([value1 [, value2 [, ...]]])     pow(x, y)     random()     round(x)     sin(x)     sqrt(x)     tan(x)    

Date对象
 Trident Gecko WebKit Presto 调用为函数 Date ([year [, month [, date [, hours [, minutes [, seconds [, ms ]]]]]]]) ? ? ? ? 调用为constructor new Date (year, month [, date [, hours [, minutes [, seconds [, ms ]]]]])     new Date (value)     new Date ()     属性 prototype     parse(string)     UTC (year, month [, date [, hours [, minutes [, seconds [, ms ]]]]])     prototype的属性 constructor     toString()     toDateString()     toTimeString()     toLocaleString()     toLocaleDateString()     toLocaleTimeString()     valueOf()     getTime()     getFullYear()     getMonth()     getUTCMonth()     getDate()     getUTCDate()     getDay()     getUTCDay()     getHours()     getUTCHours()     getMinutes()     getUTCMinutes()     getSeconds()     getUTCSeconds()     getMilliseconds()     getUTCMilliseconds()     getTimezoneOffset()     setTime(time)     setMilliseconds(ms)     setUTCMilliseconds(ms)     setSeconds(sec [, ms])     setUTCSeconds(sec [, ms])     setMinutes(min [, sec [, ms]])     setUTCMinutes(min [, sec [, ms]])     setHours(hour [, min [, sec [, ms]]])     setUTCHours(hour [, min [, sec [, ms]]])     setDate(date)     setUTCDate(date)     setMonth(month [, date])     setUTCMonth(month [, date])     setFullYear(year [, month [, date]])     setUTCFullYear(year [, month [, date]])     toUTCString()     prototype的额外属性 getYear()     setYear(year)     toGMTString()    

RegExp对象
 Trident Gecko WebKit Presto 调用为函数 RegExp (pattern, flags) ? ? ? ? 调用为constructor new RegExp (pattern, flags)     属性 prototype     prototype的属性 constructor     exec(string)     test(string)     toString()     实例的属性 source     global     ignoreCase     multiline     lastIndex    

Error对象
 Trident Gecko WebKit Presto 调用为函数 Error (message) ? ? ? ? 调用为constructor new Error (message)     属性 prototype     prototype的属性 constructor     name     message     toString()    

NativeError对象
 Trident Gecko WebKit Presto 调用为函数 EvalError (message) ?   ? RangeError (message) ?   ? ReferenceError (message) ?   ? SyntaxError (message) ?   ? TypeError (message) ?   ? URIError (message) ?   ? 调用为constructor new EvalError (message) ?   ? new RangeError (message) ?   ? new ReferenceError (message) ?   ? new SyntaxError (message) ?   ? new TypeError (message) ?   ? new URIError (message) ?   ? 属性 prototype ?  ? ? prototype的属性 constructor ?  ? ? name ?   ? message ?   ?

引用

 延伸阅读 
 ECMAScript object support in Opera
 JavaScript tests & Compatibility tables 
 ECMAScript 6 compatibility table

外部链接
Webdevout  – mostly covers Windows browsers. Extensive bug testing.

Category:JavaScript引擎