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) 

延伸阅读

  • ECMAScript object support in Opera
  • JavaScript tests & Compatibility tables (页面存档备份,存于互联网档案馆
  • ECMAScript 6 compatibility table(页面存档备份,存于互联网档案馆

外部链接

  • Webdevout (页面存档备份,存于互联网档案馆) – mostly covers Windows browsers. Extensive bug testing.
语言
引擎列表
(引擎比较)
框架
客户端
  • Ample SDK英语Ample SDK
  • Chaplin.js英语Chaplin.js
  • Dojo
  • Echo
  • Extjs
  • Google網頁工具包
  • JQuery
  • Lively Kernel英语Lively Kernel
  • midori英语Midori JavaScript Framework
  • MochiKit英语MochiKit
  • MooTools英语MooTools
  • Prototype
  • Pyjs英语Pyjs
  • qooxdoo英语qooxdoo
  • Rialto英语Rialto Toolkit
  • Rico
  • script.aculo.us英语script.aculo.us
  • SmartClient英语SmartClient
  • SproutCore英语SproutCore
  • Spry英语Spry framework
  • Wakanda框架英语Wakanda (software)
  • 雅虎UI库
服务器
  • AppJet英语AppJet
  • Jaxer英语Jaxer#Aptana Jaxer
  • Node.js
  • Deno
  • WakandaDB英语Wakanda (software)
多種實作
  • Cappuccino英语Cappuccino (application development framework)
    • Objective-J英语Objective-J
  • PureMVC英语PureMVC
函式庫
  • Backbone.js
  • SWFObject英语SWFObject
  • SWFAddress英语SWFAddress
  • Lodash
人物
其他
  • DHTML
  • Ecma国际
  • JSDoc英语JSDoc
  • JSGI英语JSGI
  • JSHint
  • JSLint
  • JSON
  • JSSS英语JavaScript Style Sheets
  • Sputnik英语Sputnik (JavaScript conformance test)
  • SunSpider英语Browser speed test#SunSpider
  • 异步模块定义英语Asynchronous module definition
  • CommonJS
列表级条目列表
JavaScript库列表
Ajax框架英语list of Ajax frameworks#JavaScript
列表级条目比较
JavaScript框架英语Comparison of JavaScript frameworks
服务器端JavaScript英语comparison of server-side JavaScript solutions
代码分析
編譯器
概念
调试工具
  • Firebug
  • Komodo IDE英语Komodo IDE
  • Microsoft Script Debugger英语Microsoft Script Debugger
  • Microsoft Script Editor英语Microsoft Script Editor
  • Opera Dragonfly英语Opera Dragonfly
  • Venkman
  • Safari
文档生成器英语Documentation generator
  • JSDoc英语JSDoc
編輯器(比较英语Comparison of JavaScript-based source code editors
引擎
軟體框架
相關語言
相關技術
軟體套件管理系統
伺服器端
單元測試
  • Jasmine英语Jasmine (JavaScript framework)
  • Mocha英语Mocha (JavaScript framework)
  • QUnit英语QUnit
  • JavaScript单元测试框架列表英语List of unit testing frameworks#JavaScript
人物