Какие версии Javascript поддерживает IE8?

согласно Википедии, IE8 поддерживает только Javascript 1.5. Таким образом, они говорят, что IE8 полностью игнорирует версии Javascript 1.6, 1.7, 1.8 и 1.9.

должен ли я доверять? Это правда?

4 ответов


ну, на самом деле реализация 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.


этот тест взят из здесь возвращает 1.3 в моем Internet Explorer 8 64-бит.

<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 над языком, но с тех пор они разошлись. Реализация ECMAScript в IE называется "JScript", и она не поддерживает многие расширения Mozilla сделали.

версия ECMAScript IE стремится к третьему изданию стандарта, который также версия JavaScript 1.5 был именно поэтому они считаются похожими. Движки JavaScript Opera, Safari и Chrome все нацелены на эту же версию; в то время как все реализации имеют ошибки, которые означают, что они не совсем точно соответствуют спецификации, в целом третье издание 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 содержит много вещей вне стандартов, поэтому вполне вероятно, что некоторые из них совпадают с более поздними дополнениями.