IE8支持哪些JavaScript版本?

41
根据维基百科的说法,IE8仅支持Javascript 1.5。因此他们在说IE8完全忽略了Javascript版本1.6、1.7、1.8和1.9。
我应该相信吗?这是真的吗?

15
你应该前往维基百科的文章,并用你在这里学到的内容来更新它。 - i_am_jorf
4个回答

43

实际上,IE的实现称为JScript,而JavaScript(TM)则是Mozilla的实现。

JScript和JavaScript是两种基于ECMAScript的方言。

JavaScript 1.5 符合ECMA-262 第3版标准,随后的版本JS 1.6、1.7和1.8引入了该标准之外的语言特性,通常称为Mozilla扩展

这就是为什么JScript没有任何这些功能,因为它们不是ECMA标准的一部分。


13
ECMAScript 5于2009年12月发布(早于本回答几个月),将许多这些新功能纳入标准。 - Matthew Flaschen
4
IE8是否支持ECMAscript 5? - nobody
3
大体上来说,不行。来源:http://kangax.github.io/compat-table/es5/#ie8 - Potherca

18

这个测试是从这里获取的,在我的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>

15

IE浏览器完全不支持JavaScript。“JavaScript”特指Mozilla对ECMAScript标准的实现。该标准最初源自Netscape/Mozilla的语言工作,但它们已经分道扬镳。IE浏览器对ECMAScript的实现被称为“JScript”,它不支持Mozilla所做的许多扩展。

IE针对的ECMAScript版本是第三版标准,这也是JavaScript 1.5的目标版本,这就是它们被认为相似的原因。Opera、Safari和Chrome的JavaScript引擎都针对这个版本;虽然所有实现都存在一些错误,导致它们没有完全符合规范,但总的来说,ECMAScript第三版是今天可行的一个坚实基础。

下一个版本的ECMAScript是第五版,它最近被标准化。所有浏览器都在从该规范中获取功能,并希望它将来能够得到广泛支持。它与任何特定的“JavaScript”版本都不对齐;它显著地吸收了一些之前在JavaScript 1.5中的有用的StringArray方法,但你在标准中找不到大多数Mozilla对JS的语法扩展。


3

是的,这是真的(至少就支持哪些语言特性而言)。您可以使用一些Javascript 1.6代码轻松检查此内容:

alert([1,2,3].indexOf(2));

IE 8会报错。

请注意,IE 8可能支持一些后来版本JavaScript添加的功能。IE包含了许多标准外的东西,因此很可能其中一些与后来的添加相同。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接