Какие версии Javascript поддерживает IE8? - PullRequest
40 голосов
/ 26 апреля 2010

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

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

Ответы [ 4 ]

43 голосов
/ 26 апреля 2010

Ну, на самом деле реализация IE называется JScript , JavaScript (TM) - это реализация Mozilla.

JScript и JavaScript - два диалекта на основе ECMAScript .

JavaScript 1.5 соответствует стандарту ECMAScript 3rd Edition , в последующих версиях JS 1.6, 1.7 и 1.8 представлены языковые функции, не входящие в стандартную версию, часто называемые Mozilla Extensions .

Вот почему JScript не имеет ни одной из этих функций, потому что они не являются частью стандарта ECMA.

18 голосов
/ 26 апреля 2010

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

<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 голосов
/ 26 апреля 2010

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, но вы не найдете большинство синтаксических расширений JS Mozilla в стандарте.

3 голосов
/ 26 апреля 2010

Да, это правда (по крайней мере, насколько поддерживаются языковые функции). Вы можете легко проверить это, используя код Javascript 1.6:

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

IE 8 выдает ошибку.

Обратите внимание, что IE 8 может поддерживать некоторые функции, добавленные в более поздние версии Javascript. IE содержит много вещей вне стандартов, так что, скорее всего, некоторые из них будут такими же, как более поздние дополнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...