Согласно Wikipedia, IE8 поддерживает только Javascript 1.5. Поэтому они говорят, что IE8 полностью игнорирует версии Javascript 1.6, 1.7, 1.8 и 1.9.
Должен ли я доверять? Это правда?
Согласно Wikipedia, IE8 поддерживает только Javascript 1.5. Поэтому они говорят, что IE8 полностью игнорирует версии Javascript 1.6, 1.7, 1.8 и 1.9.
Должен ли я доверять? Это правда?
Ну, на самом деле реализация 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
в моем 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>
IE не поддерживает JavaScript вообще. "JavaScript" конкретно относится к внедрению Mozilla стандарта ECMAScript. Этот стандарт был первоначально получен из работы Netscape/Mozilla на языке, но с тех пор они расходятся. IE-реализация ECMAScript называется "JScript", и она не поддерживает многие расширения, которые сделала Mozilla.
Версия ECMAScript IE нацелена на стандарт третьего издания, к которому также относится версия JavaScript 1.5, поэтому они считаются схожими. Двигатели JavaScript Opera, Safari и Chrome все нацелены на эту же версию; в то время как все реализации имеют ошибки, которые означают, что они не совсем точно соответствуют спецификации, в общем случае ECMAScript Third Edition является прочной базой для того, что работает сегодня.
Следующая версия ECMAScript - это пятое издание, которое было недавно стандартизовано. Все браузеры собирают функции из этой спецификации, и надеются, что она станет столь же широко поддерживаемой в будущем. Он не соответствует какой-либо конкретной версии "JavaScript"; он особенно подбирает некоторые полезные методы String
и Array
, которые ранее были в JavaScript 1.5, но вы не найдете большинство синтаксических расширений Mozilla для JS в стандарте.
Да, это правда (по крайней мере, насколько языковые функции поддерживаются). Вы можете легко проверить это, используя код Javascript 1.6:
alert([1,2,3].indexOf(2));
IE 8 выдает сообщение об ошибке.
Обратите внимание, что IE 8 может поддерживать некоторые функции, добавленные в более поздних версиях Javascript. IE содержит много вещей вне стандартов, поэтому, вероятно, некоторые из них совпадают с более поздними дополнениями.