ES5 JavaScript
- Página Anterior Versão JS
- Próxima Página JS 2015 (ES6)
O que é o ECMAScript 5?
ECMAScript 5 também é conhecido como ES5 e ECMAScript 2009.
Este capítulo introduz algumas das funcionalidades mais importantes do ES5.
Características do ECMAScript 5
Essas são as novas funcionalidades lançadas em 2009:
- "use strict" instrução
- String.trim()
- Array.isArray()
- Array.forEach()
- Array.map()
- Array.filter()
- Array.reduce()
- Array.reduceRight()
- Array.every()
- Array.some()
- Array.indexOf()
- Array.lastIndexOf()
- JSON.parse()
- JSON.stringify()
- Date.now()
- Atributos Getter e Setter
- Novos atributos e métodos de objeto
Alterações na sintaxe do ECMAScript 5
- Acesso a propriedades de strings [ ]
- Virgulas ao final de literais de arrays e objetos
- Literais de strings em multi-linhas
- Palavras reservadas como nomes de propriedade
"use strict" instrução
"use strict
"Define que o código JavaScript deve ser executado em modo estrito."
Por exemplo, ao usar o modo estrito, não é possível usar variáveis não declaradas.
Você pode usar o modo estrito em todos os programas. Isso pode ajudar a escrever código mais claro, por exemplo, impedindo o uso de variáveis não declaradas.
"use strict
"Apenas uma expressão de string. Se os navegadores antigos não entenderem, não lançarão erros."
Por favor, leia Modo estrito do JS Mais informações aqui.
String.trim()
String.trim()
Remove os caracteres de espaço em branco nos extremos da string.
Exemplo
var str = " Hello World! "; alert(str.trim());
Por favor, consulte Métodos de string JS Leia mais aqui.
Array.isArray()
isArray()
A função verifica se o objeto é um array.
Exemplo
function myFunction() { var fruits = ["Banana", "Orange", "Apple", "Mango"]; var x = document.getElementById("demo"); x.innerHTML = Array.isArray(fruits); }
Por favor, consulte JS Array Leia mais aqui.
Array.forEach()
forEach()
A função é chamada uma vez para cada elemento do array.
Exemplo
var txt = ""; var numbers = [45, 4, 9, 16, 25]; numbers.forEach(myFunction); function myFunction(value) { txt = txt + value + "<br>"; }
Por favor, consulte Métodos de iteração de arrays JS Aprenda mais sobre isso.
Array.map()
Neste exemplo, multiplica-se cada valor do array por 2:
Exemplo
var numbers1 = [45, 4, 9, 16, 25]; var numbers2 = numbers1.map(myFunction); function myFunction(value) { return value * 2; }
Por favor, consulte Métodos de iteração de arrays JS Aprenda mais sobre isso.
Array.filter()
Neste exemplo, cria-se um novo array com elementos cujo valor é maior que 18:
Exemplo
var numbers = [45, 4, 9, 16, 25]; var over18 = numbers.filter(myFunction); function myFunction(value) { return value > 18; }
Por favor, consulte Métodos de iteração de arrays JS Aprenda mais sobre isso.
Array.reduce()
Este exemplo determina a soma total de todos os números do array:
Exemplo
var numbers1 = [45, 4, 9, 16, 25]; var sum = numbers1.reduce(myFunction); function myFunction(total, value) { return total + value; }
Por favor, consulte Métodos de iteração de arrays JS Aprenda mais sobre isso.
Array.reduceRight()
Este exemplo também é para determinar a soma de todos os números no array:
Exemplo
var numbers1 = [45, 4, 9, 16, 25]; var sum = numbers1.reduceRight(myFunction); function myFunction(total, value) { return total + value; }
Por favor, consulte Métodos de iteração de arrays JS Aprenda mais sobre isso.
Array.every()
Este exemplo verifica se todos os valores são maiores que 18:
Exemplo
var numbers = [45, 4, 9, 16, 25]; var allOver18 = numbers.every(myFunction); function myFunction(value) { return value > 18; }
Por favor, consulte Métodos de iteração de arrays JS Aprenda mais sobre isso.
Array.some()
Este exemplo verifica se alguns valores são maiores que 18:
Exemplo
var numbers = [45, 4, 9, 16, 25]; var allOver18 = numbers.some(myFunction); function myFunction(value) { return value > 18; }
Por favor, consulte Métodos de iteração de arrays JS Aprenda mais sobre isso.
Array.indexOf()
Procurar um valor específico no array e retornar sua posição:
Exemplo
var fruits = ["Banana", "Orange", "Apple", "Mango"]; var a = fruits.indexOf("Apple");
Por favor, consulte Métodos de iteração de arrays JSAprenda mais sobre isso.
Array.lastIndexOf()
Array.lastIndexOf()
com Array.indexOf()
Similar, mas começa a busca do final do array.
Exemplo
var fruits = ["Banana", "Orange", "Apple", "Mango"]; var a = fruits.lastIndexOf("Apple");
Por favor, consulte Métodos de iteração de arrays JS Aprenda mais sobre isso.
JSON.parse()
Um uso comum do JSON é receber dados do servidor Web。
Imaginemos que você recebeu esta string de texto do servidor Web:
'{"name":"Bill", "age":62, "city":"Seatle"}'
Função do JavaScript JSON.parse()
Usada para converter texto em objeto JavaScript:
var obj = JSON.parse('{"name":"Bill", "age":62, "city":"Seatle"}');
Por favor, consulte nossa Tutorial JSON Aprenda mais sobre isso.
JSON.stringify()
Um uso comum do JSON é enviar dados para o servidor Web。
Quando enviarmos dados para o servidor Web, os dados devem ser uma string。
Imaginemos que temos este objeto no JavaScript:
var obj = {"name":"Bill", "age":62, "city":"Seatle"};
Use a função JavaScript JSON.stringify() para convertê-lo em string。
var myJSON = JSON.stringify(obj);
O resultado será uma string que segue a representação JSON。
myJSON agora é uma string, pronta para ser enviada para o servidor:
Exemplo
var obj = {"name":"Bill", "age":62, "city":"Seatle"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;
Por favor, consulte nossa Tutorial JSON Aprenda mais sobre isso.
Date.now()
Date.now() retorna o número de milissegundos desde a data zero (1 de janeiro de 1970, 00:00:00:00).
Exemplo
var timInMSs = Date.now();
Date.now()
retorna o mesmo resultado que o getTime() executado no objeto Date.
Por favor, consulte JS Data aprenda mais.
Atributos Getter e Setter
O ES5 permite que você defina métodos de objeto usando uma sintaxe semelhante à de obter ou definir atributos.
Este exemplo cria um atributo chamado fullName: getter:
Exemplo
// Criar objeto: var person = { firstName: "Bill", lastName : "Gates", get fullName() { return this.firstName + " " + this.lastName; } }); // Usa getter para exibir dados do objeto: document.getElementById("demo").innerHTML = person.fullName;
Este exemplo cria um setter e um getter:
Exemplo
var person = { firstName: "Bill", lastName : "Gates", language : "NO", get lang() { return this.language; , set lang(value) { this.language = value; } }); // Usa setter para definir atributo do objeto: person.lang = "en"; // Usa getter para exibir dados do objeto: document.getElementById("demo").innerHTML = person.lang;
Este exemplo usa setter para garantir que a atualização do idioma seja em maiúsculas:
Exemplo
var person = { firstName: "Bill", lastName : "Gates", language : "NO", set lang(value) { this.language = value.toUpperCase(); } }); // Usa setter para definir atributo do objeto: person.lang = "en"; // Exibe dados do objeto: document.getElementById("demo").innerHTML = person.language;
Por favor, consulte Acessores de objeto JS aprenda mais sobre getters e setters.
Novos atributos e métodos de objeto
Object.defineProperty()
É um novo método de objeto no ES5.
Permite que você defina atributos do objeto e/ou altere os valores e/ou metadados dos atributos.
Exemplo
// Criar objeto: var person = { firstName: "Bill", lastName : "Gates", language : "NO", }); // Mudar propriedade: Object.defineProperty(person, "language", { value: "EN", writable : true, enumerable: true, configurable : true }); // Enumerar propriedades var txt = ""; for (var x in person) { txt += person[x] + "<br>"; } document.getElementById("demo").innerHTML = txt;
O próximo exemplo é o mesmo código, mas esconde a propriedade de linguagem na enumeração:
Exemplo
// Criar objeto: var person = { firstName: "Bill", lastName : "Gates", language : "NO", }); // Mudar propriedade: Object.defineProperty(person, "language", { value: "EN", writable : true, enumerable : false, configurable : true }); // Enumerar propriedades var txt = ""; for (var x in person) { txt += person[x] + "<br>"; } document.getElementById("demo").innerHTML = txt;
Este exemplo cria um setter e getter para garantir a atualização em maiúsculo da linguagem:
Exemplo
// Criar objeto: var person = { firstName: "Bill", lastName : "Gates", language : "NO" }); // Mudar propriedade: Object.defineProperty(person, "language", { get : function() { return language }, set : function(value) { language = value.toUpperCase()} }); // Mudar a linguagem person.language = "en"; // Exibir a linguagem document.getElementById("demo").innerHTML = person.language;
Novos métodos de objetos ES5
ECMAScript 5 adicionou muitos novos métodos de objetos ao JavaScript:
// Adicionar ou alterar propriedades de objetos Object.defineProperty(object, property, descriptor) // Adicionar ou alterar várias propriedades de objetos Object.defineProperties(object, descriptors) // Acessar a propriedade Object.getOwnPropertyDescriptor(object, property) // Retornar todas as propriedades como um array Object.getOwnPropertyNames(object) // Retornar as propriedades enumeráveis como um array Object.keys(object) // Acessar o原型 Object.getPrototypeOf(object) // Impede a adição de propriedades ao objeto Object.preventExtensions(object) // Se puder adicionar propriedades ao objeto, retorna true Object.isExtensible(object) // Impede alterações nas propriedades do objeto (não nos valores) Object.seal(object) // Se o objeto estiver selado, retorna true Object.isSealed(object) // Impede qualquer alteração no objeto Object.freeze(object) // Se o objeto estiver congelado, retorna true Object.isFrozen(object)
Por favor, consulte Objeto ECMAScript5 Aprenda mais sobre isso.
Acesso a propriedades de string
charAt()
O método retorna o caractere especificado no índice (posição) da string:
Exemplo
var str = "HELLO WORLD"; str.charAt(0); // Retorna H
O ECMAScript 5 permite acesso a propriedades de strings:
Exemplo
var str = "HELLO WORLD"; str[0]; // Retorna H
O acesso a propriedades de string pode ser um pouco imprevisível.
Por favor, consulte Métodos de string JS Aprenda mais sobre isso.
Vírgulas trailing (Trailing Commas)
O ECMAScript 5 permite vírgulas trailing em definições de objetos e arrays:
Instância Object
person = { firstName: "Bill", lastName: " Gates", age: 62, }
Instância Array
points = [ 1, 5, 10, 25, 40, 100, ];
Aviso!!!
O Internet Explorer 8 vai falhar.
O JSON não permite vírgulas trailing.
Objeto JSON:
// Permitido: var person = '{"firstName":"Bill", "lastName":"Gates", "age":62,} JSON.parse(person) // Não permitido: var person = '{"firstName":"Bill", "lastName":"Gates", "age":62,} JSON.parse(person)
Array JSON:
// Permitido: points = [40, 100, 1, 5, 25, 10] // Não permitido: points = [40, 100, 1, 5, 25, 10,]
Strings de várias linhas
Se o caractere de escape for usado, ECMAScript 5 permite strings literais de várias linhas:
Exemplo
"Hello \ Kitty!";
O método de escape pode não ser amplamente suportado.
Navegadores mais antigos podem lidar de diferentes maneiras com espaços ao redor do caractere de escape.
Alguns navegadores antigos não permitem espaços após o caractere \.
Uma maneira mais segura de dividir uma string literal é usar a adição de strings:
Exemplo
"Hello " + "Kitty!";
Palavras reservadas como nomes de propriedades
ECMAScript 5 permite que palavras reservadas sejam usadas como nomes de propriedades:
Exemplo de Objeto
var obj = {name: "Bill", new: "yes"}
Suporte do Navegador para ES5 (ECMAScript 5)
Chrome 23, IE 10 e Safari 6 são os primeiros navegadores a suportar completamente ECMAScript 5:
Chrome 23 | IE10 / Edge | Firefox 21 | Safari 6 | Opera 15 |
Setembro de 2012 | Setembro de 2012 | Abril de 2013 | Julho de 2012 | Julho de 2013 |
- Página Anterior Versão JS
- Próxima Página JS 2015 (ES6)