根据维基百科,IE8仅支持Javascript 1.5。所以他们说IE8完全忽略了Javascript版本1.6,1.7,1.8和1.9。
我应该相信吗?这是真的吗?答案 0 :(得分:43)
嗯,实际上IE实现被称为JScript,JavaScript(TM)是Mozilla的实现。
JScript和JavaScript是两种基于ECMAScript的方言。
JavaScript 1.5符合ECMAScript 3rd Edition Standard,后续版本JS 1.6,1.7和1.8引入了标准版之外的语言功能,通常称为 Mozilla Extensions 。
这就是JScript没有任何这些功能的原因,因为它们不属于ECMA标准。
答案 1 :(得分:18)
此测试取自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>
答案 2 :(得分:15)
IE根本不支持JavaScript。 “JavaScript”特指Mozilla对ECMAScript标准的实现。这个标准最初来源于Netscape / Mozilla关于该语言的工作,但它们已经分道扬.. IE的ECMAScript实现称为“JScript”,它不支持Mozilla所做的许多扩展。
ECMAScript IE的目标版本是第三版标准,它也是JavaScript 1.5的目标版本,这就是为什么它们被认为是相似的。 Opera,Safari和Chrome的JavaScript引擎都以同一版本为目标;虽然所有的实现都有错误,这意味着它们并不完全符合规范,一般来说,ECMAScript第三版是今天有效的基础。
ECMAScript的下一个版本是第五版,最近已标准化。所有浏览器都在从这个规范中获取功能,并希望它将在未来得到广泛支持。它不符合任何特定的“JavaScript”版本;它显然选择了以前在JavaScript 1.5中使用的一些有用的String
和Array
方法,但是你不会在标准中找到大多数Mozilla对JS的语法扩展。
答案 3 :(得分:3)
是的,这是真的(至少支持哪种语言功能)。您可以使用一些Javascript 1.6代码轻松检查:
alert([1,2,3].indexOf(2));
IE 8抛出错误。
请注意,IE 8可能支持在Javascript的更高版本中添加的一些功能。 IE包含很多标准之外的东西,所以有些东西可能与后来添加的东西相同。