Skąd mam wiedzieć, której wersji JavaScript używam?

Odpowiedzi:

42

Wikipedia (a raczej społeczność na Wikipedii) prowadzi tutaj całkiem niezłą, aktualną listę .

  • Większość przeglądarek jest w wersji 1.5 (chociaż mają funkcje późniejszych wersji)
  • Mozilla rozwija się z każdym wydaniem dot (utrzymują standard, więc nie jest to zaskakujące)
  • Firefox 4 działa w JavaScript 1.8.5
  • Drugi duży, nie na uboczu, to IE9 - implementuje ECMAScript 5, ale nie implementuje wszystkich funkcji JavaScript 1.8.5 (nie jestem pewien, jak nazywają tę wersję JScript, silnik o nazwie kodowej Chakra , jeszcze ).
Nick Craver
źródło
3
Firefox 4 (JavaScript (TM) 1.8.5) i IE9 (JScript 9) realizuje wiele ECMAScript 5 funkcji, ale rozważyć na przykład JavaScript (TM) 1.8 , jest pełny z niestandardowych funkcji, które nie są dostępne na IE9 (i nie są częścią specyfikacji ES5), są rozszerzeniami Mozilli .
Christian C. Salvadó
@CMS - doskonały punkt na bity, których nie implementuje, próbowałem ulepszyć powyższe, biorąc pod uwagę, że to bulgotało na szczyt.
Nick Craver
2
Dzięki, IMO jest ważnym punktem, aby podkreślić, że JScript! == JavaScript (TM) i że numery wersji JS Mozilli są prawie bez znaczenia dla innych implementacji ...
Christian C. Salvadó
1
Co więcej, wygląda na to, że „całkiem dobra, aktualna lista” Wikipedii przestała być taka, gdy pojawiła się ta odpowiedź. Wygląda na to, że nie był aktualizowany od ~ 2010 roku ...
NetXpert
82

Kliknij ten link, aby zobaczyć, której wersji używa Twoja PRZEGLĄDARKA: http://jsfiddle.net/Ac6CT/

Powinieneś być w stanie filtrować za pomocą tagów skryptu do każdej wersji JS.

<script type="text/javascript">
  var jsver = 1.0;
</script>
<script language="Javascript1.1">
  jsver = 1.1;
</script>
<script language="Javascript1.2">
  jsver = 1.2;
</script>
<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>
<script language="Javascript1.9">
  jsver = 1.9;
</script>

<script type="text/javascript">
  alert(jsver);
</script>

Moje raporty Chrome 1.7

Rażąco skradziony z: http://javascript.about.com/library/bljver.htm

Alex Wayne
źródło
5
A co z mniejszymi wydaniami? np. 1.8.1, 1.8.2, 1.8.3 ... widzisz, jak mogłoby to stać się uciążliwe.
Nick Craver
12
Lepiej byłoby użyć wykrywania funkcji.
jwueller
2
Na przykład 1.8.1 dodano JSONobsługę natywną , 1.8.5 jest zgodny z ECMAScript 5 ... to są ważne kamienie milowe :)
Nick Craver
3
To pokazało mi, że Chrome ma wersję 1.7, ale ma natywną obsługę formatu JSON. Być może właściwą odpowiedzią na to pytanie jest to, że wersja javascript w przeglądarce niekoniecznie musi zawierać bardzo przydatne informacje.
Alex Wayne,
1
Mozilla obsługuje javascript do wersji 1.8, ale składnia jest inna:<script type="application/javascript;version=1.7"/>
Yukulélé
18

W chrome możesz łatwo znaleźć nie tylko swoją wersję JS, ale także wersję flash. Wystarczy wpisać chrome://version/wiersz poleceń, a otrzymasz coś takiego:

wprowadź opis obrazu tutaj

Salvador Dali
źródło
9
ha ha! To nie jest wersja JS, ale numer wersji silnika V8. Również dzisiaj, w 2015 roku, przenieśli się do Blink jako preferowanego silnika
Christian M.Raymonds
@ ChristianM.Raymonds, więc dlaczego mój chrome v 46.0.2490.86z listopada 2015 r. Nadal się wyświetla V8 4.6.85.31?
Salvador Dali
@Savador Dali OP pytał o wersję JS - przeczytaj wersję językową JavaScript rozumianą przez silnik, a nie wersję silnika. Wszystko większe niż Chrome 28 używa Blink. Proszę, przeprowadź swoje badania.
Christian M. Raymonds
1
@ SalvadorDali - To jest wersja silnika V8 (silnik Javascript), a NIE wersja Javascript.
nanosoft
4
@ ChristianM.Raymonds - Blink i V8 to dwie bardzo różne rzeczy. V8 to silnik JS, a Blink to silnik internetowy, a Chrome używa obu. Są to dwa oddzielne silniki do dwóch bardzo różnych rzeczy, a użycie jednego w żaden sposób nie wyklucza się wzajemnie.
nanosoft
6

Zamiast znaleźć wersję, z której korzystasz, możesz przeformułować swoje pytanie do „z jaką wersją skryptu ECMA jest zgodny silnik JavaScript / JSscript mojej przeglądarki”.

W przypadku IE:

alert(@_jscript_version);      //IE

Zapoznaj się z odpowiedzią Squeegy w przypadku wersji innych niż IE :)

Robin Maben
źródło
3
Czy Squeegy zmienił nazwy użytkowników lub usunął swoją odpowiedź? Nie ma tutaj odpowiedzi od użytkownika o nazwie Squeegy.
Peter Hansen
@PeterHansen: Ups, powinienem był połączyć się z odpowiedzią :)
Robin Maben
a przeglądarki robią to tylko częściowo, możesz znaleźć 97% ES6, 39% ES7 , kangax.github.io/compat-table/es6 , a nawet te tabele nie są do końca prawdziwe.
prosti
Działa to tylko wtedy, gdy Conditional Compilationjest włączone, więc może nie działać w 100%, jeśli masz SysAdmin, który wierzy w bezpieczeństwo „bułki z chleba”
GoldBishop
1

Wszystkie dzisiejsze przeglądarki używają przynajmniej wersji 1.5:
http://en.wikipedia.org/wiki/ECMAScript#Dialect

Jeśli chodzi o twoją stronę z samouczkami, to informacje wydają się być bardzo nieaktualne , błagam cię, abyś udał się do MDC i przeczytał ich przewodnik:
https://developer.mozilla.org/en/JavaScript/Guide

Możesz nadal uważać na funkcje, które wymagają wersji 1.6lub nowszej, ponieważ może to powodować problemy z programem Internet Explorer.

Ivo Wetzel
źródło
„Twoja przeglądarka jest przestarzała. Zaktualizuj do nowej przeglądarki”. ... Lista przeglądarek tutaj ...
1,21 gigawata
0

JavaScript 1.2 został wprowadzony wraz z Netscape Navigator 4 w 1997 roku. Ten numer wersji miał znaczenie tylko dla przeglądarek Netscape. Na przykład implementacja firmy Microsoft (stosowana w przeglądarce Internet Explorer) nazywa się JScript i ma własną numerację wersji, która nie ma żadnego związku z numeracją Netscape.

NickFitz
źródło