Como posso saber qual versão do Javascript estou usando?

Respostas:

42

A Wikipedia (ou melhor, a comunidade da Wikipedia) mantém uma lista bem atualizada aqui .

  • A maioria dos navegadores está no 1.5 (embora tenham recursos de versões posteriores)
  • O Mozilla avança com cada lançamento de ponto (eles mantêm o padrão, então isso não é surpreendente)
  • Firefox 4 está em JavaScript 1.8.5
  • O outro grande e incomum é o IE9 - ele implementa o ECMAScript 5, mas não implementa todos os recursos do JavaScript 1.8.5 (não tenho certeza do que eles estão chamando esta versão do JScript, mecanismo de codinome Chakra , ainda )
Nick Craver
fonte
3
Firefox 4 (JavaScript (TM) 1.8.5) e IE9 (JScript 9) implementam muitos recursos ECMAScript 5 , mas considere, por exemplo, JavaScript (TM) 1.8 , é cheio de recursos não padrão , que não estão disponíveis no IE9 (e eles não fazem parte da especificação ES5.), eles são extensões do Mozilla .
CMS
@CMS - excelente ponto sobre os bits que não implementa, tentei melhorar o acima, pois isso borbulhava no topo.
Nick Craver
2
Obrigado, IMO é um ponto importante para enfatizar que JScript! == JavaScript (TM) e que os números de versão JS do Mozilla são quase sem sentido para outras implementações ...
CMS
1
Pelo que vale a pena, parece que a "lista bastante atualizada da Wikipedia" parou de ser assim na época em que esta resposta foi fornecida. Não parece ter sido atualizado desde ~ 2010 ...
NetXpert
82

Clique neste link para ver qual versão o seu BROWSER está usando: http://jsfiddle.net/Ac6CT/

Você deve ser capaz de filtrar usando tags de script para cada versão 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>

Meus relatórios do Chrome 1.7

Roubado descaradamente de: http://javascript.about.com/library/bljver.htm

Alex Wayne
fonte
5
E quanto aos lançamentos menores? por exemplo, 1.8.1, 1.8.2, 1.8.3 ... você vê como isso se tornaria tedioso.
Nick Craver
12
Seria melhor usar a detecção de recursos.
jwueller
2
1.8.1 por exemplo JSON, suporte nativo adicionado , 1.8.5 está em conformidade com ECMAScript 5 ... esses são marcos importantes :)
Nick Craver
3
Então, isso me disse que o Chrome era 1.7, mas ainda assim tem suporte nativo para JSON. Talvez a resposta certa para essa pergunta seja mais que a versão javascript em um navegador não indica necessariamente muitas informações úteis.
Alex Wayne
1
Mozilla suporta javascript até a versão 1.8, mas a sintaxe é diferente:<script type="application/javascript;version=1.7"/>
Yukulélé
17

No Chrome, você pode encontrar facilmente não apenas sua versão JS, mas também uma versão em flash. Tudo que você precisa é digitar chrome://version/uma linha de comando e você obterá algo assim:

insira a descrição da imagem aqui

Salvador Dalí
fonte
9
ha ha! Essa não é a versão JS, mas o número da versão do V8 Engine. Além disso, hoje, em 2015, eles mudaram para Blink como o motor de escolha
Christian M. Raymonds
@ ChristianM.Raymonds então por que meu cromo v 46.0.2490.86em novembro de 2015 ainda aparece V8 4.6.85.31?
Salvador Dali
@Savador Dali OP estava perguntando sobre a versão JS - leia a versão da linguagem JavaScript entendida pelo motor e não a versão do motor. Qualquer coisa maior que o Chrome 28 usa Blink. Por favor, faça sua pesquisa.
Christian M. Raymonds
1
@ SalvadorDali- Essa é a versão do motor V8 (um motor Javascript) e NÃO a versão Javascript.
nanosoft
4
@ ChristianM.Raymonds - Blink e V8 são duas coisas muito diferentes. V8 é o mecanismo JS e o Blink é o mecanismo da web e o Chrome usa os dois. Eles são dois motores separados para duas coisas muito diferentes e o uso de um não é mutuamente exclusivo do outro de forma alguma.
nanosoft
6

Em vez de descobrir qual versão você está usando, você pode reformular sua pergunta para "com qual versão do script ECMA o mecanismo JavaScript / JSscript do meu navegador está em conformidade".

Para IE:

alert(@_jscript_version);      //IE

Consulte a resposta de Squeegy para versões não IE :)

Robin Maben
fonte
3
O Squeegy alterou o nome do usuário ou excluiu sua resposta? Não há respostas aqui de um usuário chamado Squeegy.
Peter Hansen,
@PeterHansen: Opa, deveria ter vinculado à resposta :)
Robin Maben
e os navegadores fazem isso apenas parcialmente, você pode encontrar 97% do ES6, 39% do ES7, kangax.github.io/compat-table/es6 , e mesmo essas tabelas não são totalmente verdadeiras.
prosti
Isso só funciona se Conditional Compilationestiver ativado, então pode não funcionar 100% se você tiver SysAdmin que acredita em segurança "migalha de pão"
GoldBishop
1

Todos os navegadores de hoje usam pelo menos a versão 1.5:
http://en.wikipedia.org/wiki/ECMAScript#Dialect

Em relação ao seu site de tutorial, as informações nele parecem estar extremamente desatualizadas , eu imploro que você vá ao MDC e leia o Guia:
https://developer.mozilla.org/en/JavaScript/Guide

Você ainda pode querer tomar cuidado com os recursos que requerem a versão 1.6ou superior, pois isso pode causar alguns problemas ao Internet Explorer.

Ivo Wetzel
fonte
"Seu navegador está desatualizado. Atualize para um novo navegador." ... Lista navegadores aqui ...
1,21 gigawatts
0

O JavaScript 1.2 foi introduzido com o Netscape Navigator 4 em 1997. Esse número de versão só teve significado para os navegadores Netscape. Por exemplo, a implementação da Microsoft (como usada no Internet Explorer) é chamada de JScript e tem sua própria numeração de versão que não guarda relação com a numeração do Netscape.

NickFitz
fonte