2010-04-26 17 views
39

Według Wikipedii, IE8 obsługuje tylko Javascript 1.5. Mówią, że IE8 całkowicie ignoruje wersje Javascript 1.6, 1.7, 1.8 i 1.9.Które wersje Javascript obsługuje IE8?

Czy powinienem ufać? Czy to prawda?

+13

Powinieneś zaktualizować artykuł w Wikipedii, korzystając z tego, czego się tutaj nauczyłeś. –

Odpowiedz

43

Cóż, właściwie implementacja IE nazywa się JScript, JavaScript (TM) jest implementacją Mozilli.

JScript i JavaScript to dwa dialekty oparte na ECMAScript.

JavaScript 1.5 jest zgodny z ECMAScript 3rd Edition Standard, późniejsze wersje, JS 1.6, 1.7 i 1.8 wprowadzenia możliwości językowych, które są z tego Standard Edition, często zwanego Rozszerzenia Mozilli.

Dlatego właśnie JScript nie ma żadnej z tych funkcji, ponieważ nie są one częścią standardu ECMA.

+13

ECMAscript 5 został opublikowany w grudniu 2009 r. (Kilka miesięcy przed tą odpowiedzią), włączając wiele nowych funkcji do standardu. –

+4

Czy IE8 obsługuje ECMAscript 5? – noname

+3

@BenNelson Ogólnie rzecz biorąc, NIE. Źródło: http://kangax.github.io/compat-table/es5/#ie8 – Potherca

3

Tak, to prawda (przynajmniej w zakresie obsługiwanych funkcji językowych). Możesz to łatwo sprawdzić za pomocą kodu JavaScript 1.6:

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

IE 8 zgłasza błąd.

Zauważ, że IE 8 może obsługiwać niektóre funkcje dodane w późniejszych wersjach Javascript. IE zawiera wiele rzeczy poza standardami, więc prawdopodobnie niektóre z nich są takie same jak późniejsze dodatki.

18

Ten test z here zwraca 1.3 w moim 64-bitowym programie 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> 
+3

To interesujące ... – MatteoSp

+5

http://jsfiddle.net/jPZj9/ –

+2

Ten test zwraca również 1.3 w Internet Explorerze 11 ... – Shaffe

15

IE w ogóle nie obsługuje JavaScript. "JavaScript" odnosi się konkretnie do implementacji standardu ECMAScript przez Mozillę. Standard ten pierwotnie wywodził się z prac Netscape/Mozilli nad językiem, ale od tego czasu rozeszły się. Implementacja ECMAScript przez IE nazywa się "JScript" i nie obsługuje wielu rozszerzeń, które stworzyła Mozilla.

Wersja ECMAScript IE przeznaczona jest dla standardu Third Edition, do którego również przeznaczona była wersja JavaScript 1.5, dlatego są one uważane za podobne. Silniki JavaScript Opery, Safari i Chrome są ukierunkowane na tę samą wersję; podczas gdy wszystkie implementacje mają błędy, które oznaczają, że nie dość dokładnie spełniają specyfikację, ogólnie ECMAScript Third Edition jest solidną podstawą dla tego, co działa dzisiaj.

Następną wersją ECMAScript jest Piąta edycja, która została ostatnio ujednolicona. Wszystkie przeglądarki pobierają funkcje z tego spec i ma nadzieję, że stanie się tak szeroko wspierany w przyszłości. Nie dopasowuje się do żadnej konkretnej wersji "JavaScript"; w szczególności bierze pod uwagę kilka użytecznych metod, które były wcześniej w JavaScript 1.5, ale nie znajdziesz większości składniowych rozszerzeń Mozilli do JS w standardzie.

Powiązane problemy