ECMAScript5 a nova versão do JavaScript

Para quem não sabe o JavaScript também tem um padrão por trás, este padrão, diferente da maioria dos padrões web que são definidos pela W3C, é definido pela ECMA, é conhecido pelo nome de ECMAScript e em dezembro de 2009 chegou a sua quinta versão (isso me lembra HTML5), que veio para substituir a terceira versão (a quarta não chegou a ser publicada) que data do século passado de 1999, este anúncio foi feito com bem menos alarde e rumores do que CSS3 e HTML5, não é difícil entender já que estes dois trazem melhoras muito mais perceptíveis em recursos disponíveis nos browsers, já o padrão ECMAScript define apenas alterações na sintaxe e no comportamento das linguagens que se baseiam nele, entre estas linguagens algumas bem conhecidas como por exemplo:

  • O próprio JavaScript, utilizado pela Mozilla, Google, Apple
  • JScript, que é uma implementação do JavaScritpt levemente diferente feita pela Microsoft (padrão!?).
  • ActionScript, utilizado para criar animações e interatividade no Adobe Flash e no Adobe Flex
  • JScript.NET, uma das linguagens disponíveis no framework .NET da Microsoft

Segue algumas das principais novidades do ECMAScript5:

Getters and Setters

var domoid = {
  foo: 'bar',
  get innerHTML() { return ...; },
  set innerHTML(newHTML) { ... }
};

Colisão de palavras chaves
Agora você pode definir a propriedade class em seu objeto foo (Obviamente o DOM não foi alterado)

foo.class = "minhaClasse"

Novos métodos para ordenação de arrays:
forEach(), map(), every(), some(), filter(), reduce(), reduceRight()

// Lista ao quadrado
function sqFnList(a) {
  return a.map(function(ai) {
    return ai * ai;
  });
}
sqFnList([3,4,5])[0]; // Vai retornar 9

JSON nativo
Uma das grandes funcionalidades disponíveis para utilizar JSON nativamente é o comando JSON.parse que irá possibilitar que você criei um objeto a partir de uma string contendo um objeto declarado utilizando a syntaxe JSON, hoje isso é feito utilizando o comando eval que é considerado impróprio e inseguro.

var obj = JSON.parse('{"Nome":"Plets","Idade":"25"}');
print( obj.Nome ); // Resultado será Plets

Modo Strict
É possível declarar um programa ou uma função como sendo strict, o que ocasionará mais exceções que o normal e prevenirá algumas ações de serem executadas, isso pode ser útil para funções que por questões de segurança devem prevenir certas ações de serem executadas, ou ainda prevenir falha por parte do desenvolvedor.

"use strict"; //Definir o use do modo strict para todo o script
function StrictFunction(){
  "use strict"; // Definir apenas dentro de uma determinada função
  alert("Modo strict ativado")
}

Uma coisa interessante é que utilizando o modo strict por exemplo não será possível atribuir um valor a uma determinada variável que não foi inicializada, para saber mais sobre escopo de variáveis no JavaScript veja este post.

Acesse os sites abaixo para saber mais:

https://developer.mozilla.org/en/JavaScript/ECMAScript_5_support_in_Mozilla
http://ajaxian.com/archives/ecmascript-5-changes-to-javascript
http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/
http://ejohn.org/blog/ecmascript-5-objects-and-properties/
http://www.ecma-international.org/memento/TC39.htm

Bookmark and Share

About Felipe Plets

Colaborador da empresa SAP Labs Latin America, trabalha desde 2000 como desenvolvedor de software e desde 2009 com metodologias ágeis, colaborando ativamente na adoção e implementação destas.