【发布时间】:2010-04-26 15:32:07
【问题描述】:
根据 Wikipedia,IE8 仅支持 Javascript 1.5。所以他们说 IE8 完全忽略了 Javascript 版本 1.6、1.7、1.8 和 1.9。
我应该相信吗?是真的吗?
【问题讨论】:
-
你应该用你在这里学到的东西去更新维基百科的文章。
标签: javascript internet-explorer browser
根据 Wikipedia,IE8 仅支持 Javascript 1.5。所以他们说 IE8 完全忽略了 Javascript 版本 1.6、1.7、1.8 和 1.9。
我应该相信吗?是真的吗?
【问题讨论】:
标签: javascript internet-explorer browser
嗯,其实IE的实现叫做JScript,JavaScript(TM)是Mozilla的实现。
JScript 和 JavaScript 是两种基于 ECMAScript 的方言。
JavaScript 1.5 符合 ECMAScript 3rd Edition Standard,后续版本 JS 1.6、1.7 和 1.8 引入了该标准版本之外的语言功能,通常称为 Mozilla 扩展。
这就是 JScript 没有这些特性的原因,因为它们不是 ECMA 标准的一部分。
【讨论】:
此测试取自 here,在我的 Internet Explorer 8 64 位中返回 1.3。
<SCRIPT Language="JavaScript1.3">
jsver = "1.3";
</SCRIPT>
<SCRIPT Language="JavaScript1.4">
jsver = "1.4";
</SCRIPT>
<SCRIPT Language="JavaScript1.5">
jsver = "1.5";
</SCRIPT>
<SCRIPT Language="JavaScript1.6">
jsver = "1.6";
</SCRIPT>
<SCRIPT Language="JavaScript1.7">
jsver = "1.7";
</SCRIPT>
<SCRIPT Language="JavaScript1.8">
jsver = "1.8";
</SCRIPT>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
document.write("<B>Your browser supports JavaScript version " + jsver + ".</B>")
</SCRIPT>
</body>
</html>
【讨论】:
IE 根本不支持 JavaScript。 “JavaScript”特指 Mozilla 对 ECMAScript 标准的实现。该标准最初源自 Netscape/Mozilla 在该语言方面的工作,但后来出现了分歧。 IE 的 ECMAScript 实现称为“JScript”,它不支持 Mozilla 所做的许多扩展。
ECMAScript IE 的目标版本是第三版标准,这也是 JavaScript 1.5 的目标版本,这就是它们被认为相似的原因。 Opera、Safari 和 Chrome 的 JavaScript 引擎都针对同一版本;虽然所有实现都有错误,这意味着它们并不完全符合规范,但总的来说,ECMAScript 第三版是当今工作的可靠基准。
ECMAScript 的下一个版本是最近标准化的第五版。所有浏览器都从该规范中获取功能,并希望它在未来得到广泛支持。它不符合任何特定的“JavaScript”版本;它特别采用了一些有用的 String 和 Array 方法,这些方法以前在 JavaScript 1.5 中,但您不会在标准中找到 Mozilla 对 JS 的大部分语法扩展。
【讨论】:
是的,确实如此(至少就支持的语言功能而言)。您可以使用一些 Javascript 1.6 代码轻松检查:
alert([1,2,3].indexOf(2));
IE 8 抛出错误。
请注意,IE 8 可能支持更高版本的 Javascript 中添加的一些功能。 IE包含了很多标准之外的东西,所以很可能其中一些恰好和后面的补充一样。
【讨论】: