From a065e04d529da1d847b5062a12c46d916408bf32 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 21:46:22 -0500 Subject: update based on https://github.com/mdn/yari/issues/2028 --- .../javascript/new_in_javascript/1.1/index.html | 71 ------ .../javascript/new_in_javascript/1.6/index.html | 33 --- .../javascript/new_in_javascript/1.7/index.html | 50 ---- .../javascript/new_in_javascript/1.8.5/index.html | 130 ---------- .../ecmascript_5_support_in_mozilla/index.html | 53 ----- .../web/javascript/new_in_javascript/index.html | 80 ------- .../global_objects/array/observe/index.html | 128 ---------- .../global_objects/array/unobserve/index.html | 129 ---------- .../global_objects/function/arity/index.html | 78 ------ .../global_objects/function/isgenerator/index.html | 55 ----- .../reference/global_objects/iterador/index.html | 184 -------------- .../global_objects/object/count/index.html | 46 ---- .../global_objects/object/observe/index.html | 161 ------------- .../operators/array_comprehensions/index.html | 207 ---------------- .../operators/expression_closures/index.html | 72 ------ .../operators/generator_comprehensions/index.html | 169 ------------- .../reference/statements/for_each...in/index.html | 126 ---------- .../suporte_ao_ecmascript_6_na_mozilla/index.html | 264 --------------------- 18 files changed, 2036 deletions(-) delete mode 100644 files/pt-br/web/javascript/new_in_javascript/1.1/index.html delete mode 100644 files/pt-br/web/javascript/new_in_javascript/1.6/index.html delete mode 100644 files/pt-br/web/javascript/new_in_javascript/1.7/index.html delete mode 100644 files/pt-br/web/javascript/new_in_javascript/1.8.5/index.html delete mode 100644 files/pt-br/web/javascript/new_in_javascript/ecmascript_5_support_in_mozilla/index.html delete mode 100644 files/pt-br/web/javascript/new_in_javascript/index.html delete mode 100644 files/pt-br/web/javascript/reference/global_objects/array/observe/index.html delete mode 100644 files/pt-br/web/javascript/reference/global_objects/array/unobserve/index.html delete mode 100644 files/pt-br/web/javascript/reference/global_objects/function/arity/index.html delete mode 100644 files/pt-br/web/javascript/reference/global_objects/function/isgenerator/index.html delete mode 100644 files/pt-br/web/javascript/reference/global_objects/iterador/index.html delete mode 100644 files/pt-br/web/javascript/reference/global_objects/object/count/index.html delete mode 100644 files/pt-br/web/javascript/reference/global_objects/object/observe/index.html delete mode 100644 files/pt-br/web/javascript/reference/operators/array_comprehensions/index.html delete mode 100644 files/pt-br/web/javascript/reference/operators/expression_closures/index.html delete mode 100644 files/pt-br/web/javascript/reference/operators/generator_comprehensions/index.html delete mode 100644 files/pt-br/web/javascript/reference/statements/for_each...in/index.html delete mode 100644 files/pt-br/web/javascript/suporte_ao_ecmascript_6_na_mozilla/index.html (limited to 'files/pt-br/web/javascript') diff --git a/files/pt-br/web/javascript/new_in_javascript/1.1/index.html b/files/pt-br/web/javascript/new_in_javascript/1.1/index.html deleted file mode 100644 index 456f0f3c18..0000000000 --- a/files/pt-br/web/javascript/new_in_javascript/1.1/index.html +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: New in JavaScript 1.1 -slug: Web/JavaScript/New_in_JavaScript/1.1 -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.1 ---- -
{{jsSidebar("New_in_JS")}}
- -

O seguinte registro de alteração para JavaScript do Netscape Navigator 2.0 para 3.0. A documentação antiga do Netscape faz referência a isso como "Recursos adicionados após a versão 1". Netscape Navigator 3.0 foi lançado em 19 de agosto de 1996. Netscape Navigator 3.0 foi a segunda versão principal do navegador com suporte a JavaScript.

- -

JavaScript Versões

- -

Netscape Navigator 3.0 também introduziu a versão da linguagem JavaScript.

- -
<SCRIPT LANGUAGE="JavaScript">    <!-- JavaScript for Navigator 2.0. -->
-<SCRIPT LANGUAGE="JavaScript1.1"> <!-- JavaScript for Navigator 3.0. -->
- -

Novos Recursos em JavaScript 1.1

- -

Novos Objetos

- - - -

NOvas Propriedades

- - - -

Novos Métodos

- - - -

Novos Operadores

- - - -

Outras Novas Propriedades

- - - -

Funcionalidades alteradas em JavaScript 1.1

- - diff --git a/files/pt-br/web/javascript/new_in_javascript/1.6/index.html b/files/pt-br/web/javascript/new_in_javascript/1.6/index.html deleted file mode 100644 index b751a5b429..0000000000 --- a/files/pt-br/web/javascript/new_in_javascript/1.6/index.html +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Novidades do JavaScript 1.6 -slug: Web/JavaScript/New_in_JavaScript/1.6 -tags: - - JavaScript - - Versões -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.6 ---- -
{{jsSidebar("New_in_JS")}}
- -

A seguir, é apresentado um registro de alterações do JavaScript 1.6. Esta versão foi incluída no Firefox 1.5 (Gecko 1.8), lançado em novembro de 2005. O padrão ECMA correspondente é o ECMA-262 Edição 3 e o ECMAScript para XML (E4X) com alguns recursos adicionais. Vários novos recursos foram introduzidos: E4X, vários novos métodos Array e Array e String genéricos.

- -

Novos recursos do JavaScript 1.6

- - - -

Funcionalidade alterada no JavaScript 1.6

- - diff --git a/files/pt-br/web/javascript/new_in_javascript/1.7/index.html b/files/pt-br/web/javascript/new_in_javascript/1.7/index.html deleted file mode 100644 index 9dd268d6fe..0000000000 --- a/files/pt-br/web/javascript/new_in_javascript/1.7/index.html +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: JavaScript 1.7 -slug: Web/JavaScript/New_in_JavaScript/1.7 -tags: - - JavaScript - - Versões -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.7 ---- -
{{jsSidebar("New_in_JS")}}
- -

Segue o changelog para JavaScript 1.7. Esta versão foi incluído no Firefox 2 (Outubro de 2006).

- -

 

- -

JavaScript 1.7 é uma atualização que introduz vários novos recursos , em particular,generators, iterators, array comprehensions, let expressions e destructuring assignment.

- -

Usando JavaScript 1.7

- -

 

- -

Para utilizar alguns dos novos recursos do JavaScript 1.7 , você precisa especificar que você deseja usar JavaScript 1.7 . No código HTML ou XUL , use :

- -
<script type="application/javascript;version=1.7"></script>
- -

 

- -

Ao usar o shell JavaScript, você precisa definir a versão que você deseja usar usando a opção -version 170 na linha de comando ou usando a versão function () :

- -
version(170);
-
- -

 

- -

Os recursos que exigem o uso de novas palavras-chave "yield" e " let" exigem que você especifique a versão 1.7, porque o código existente pode usar essas palavras-chave como nomes de variável ou função . Os recursos que não introduzem novas palavras-chave ( destructuring assignment and array comprehensions) pode ser usado sem especificar a versão JavaScript

- -

Novos recursos em JavaScript 1.7

- -

 

- -

Os seguintes recursos adicionados no  JavaScript 1.7 não faziam parte do padrão ECMA -262 ,no entanto, em versões mais recentes do Firefox , foi implementada atualizaçãoes para trabalhar com a semântica conforme especificado no ECMAScript Edição 6. Por favor, consulte as páginas de referência para visualizar as diferenças

- - diff --git a/files/pt-br/web/javascript/new_in_javascript/1.8.5/index.html b/files/pt-br/web/javascript/new_in_javascript/1.8.5/index.html deleted file mode 100644 index cd542b3fd4..0000000000 --- a/files/pt-br/web/javascript/new_in_javascript/1.8.5/index.html +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Novas funcionalidades do JavaScript 1.8.5 -slug: Web/JavaScript/New_in_JavaScript/1.8.5 -tags: - - ECMAScript5 - - Firefox 4 - - JavaScript - - JavaScript 1.8.5 - - Versões -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.8.5 ---- -
{{jsSidebar("New_in_JS")}}
- -

Segue um changelog para JavaScript 1.8.5. Esta versão foi incluída no Firefox 4.

- -

Novas funcionalidades do JavaScript 1.8.5

- -

Novas Funções

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FunctionDescription
{{jsxref("Object.create()")}}Cria um novo o objeto de protótipo especificado e de propriedades. {{bug("492840")}}
{{jsxref("Object.defineProperty()")}}Adiciona a propriedade chamada descrito a um objeto.
{{jsxref("Object.defineProperties()")}}Adiciona as propriedades nomeadas described a um objeto.
{{jsxref("Object.getOwnPropertyDescriptor()")}}Retorna um descriptor para uma propriedade chamada em um objeto.{{bug("505587")}}
{{jsxref("Object.keys()")}}Retorna um array de todas as propriedades numéricas sobre um objeto. {{bug("307791")}}
{{jsxref("Object.getOwnPropertyNames()")}}Retorna um array de todas as propriedades numéricas e não-numéricas sobre um objeto. {{bug("518663")}}
{{jsxref("Object.preventExtensions()")}}Impede todas as extensões de um objeto. {{bug("492849")}}
{{jsxref("Object.isExtensible()")}}Verifica se o objeto é extensível. {{bug("492849")}}
{{jsxref("Object.seal()")}}Impede que outro código de modifique propriedades de um objeto. {{bug("492845")}}
{{jsxref("Object.isSealed()")}}Determina que novas propriedades não podem ser adicionadas. {{bug("492845")}}
{{jsxref("Object.freeze()")}}Congela/trava um objeto: outro código não pode excluir ou alterar as propriedades.{{bug("492844")}}
{{jsxref("Object.isFrozen()")}}Verifica se um objeto foi congelado/travado. {{bug("492844")}}
{{jsxref("Array.isArray()")}}Verifica se uma variável é um array. {{bug("510537")}}
{{jsxref("Date.prototype.toJSON()")}}Retorna um formato JSON para um objeto Date.
{{jsxref("Function.prototype.bind()")}}O metodos bind() cria uma nova função que, quando chamada, tem o seu próprio this palavra-chave para o valor fornecido, com uma dada sequência dos argumentos que precedem um fornecido quandoa nova função é chamada. {{bug("429507")}}
- -

Novas características do ECMAScript5

- - - -

Outras normalizações

- -

Various non-standard syntaxes for defining getters and setters have been removed; ECMAScript 5 defined syntax has not been changed. These were all pretty esoteric and rarely used; if this affects you, see this blog post for details.

- -

Várias sintaxes não default para a definição de getters e setters foram removidas; sintaxe definadas na ECMAScript 5 não foram alteradas. As excluídas eram raramente usadas; se isso afeta você, veja esta dica no blog para mais detalhes.

- -

Novos objetos

- - - - - - - - - - - - - - -
ObjetoDescrição
{{jsxref("Proxy")}}Oferece suporte para a criação de Objetos e Funções de proxies que permitem meta-programming em JavaScript.
- -

Changed functionality in JavaScript 1.8.5

- - diff --git a/files/pt-br/web/javascript/new_in_javascript/ecmascript_5_support_in_mozilla/index.html b/files/pt-br/web/javascript/new_in_javascript/ecmascript_5_support_in_mozilla/index.html deleted file mode 100644 index 2bd897601e..0000000000 --- a/files/pt-br/web/javascript/new_in_javascript/ecmascript_5_support_in_mozilla/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Suporte ao ECMAScript 5 no Mozilla -slug: Web/JavaScript/New_in_JavaScript/ECMAScript_5_support_in_Mozilla -tags: - - ECMAScript6 - - JavaScript - - Versões -translation_of: Archive/Web/JavaScript/New_in_JavaScript/ECMAScript_5_support_in_Mozilla ---- -
{{jsSidebar("New_in_JS")}}
- -
ECMAScript 5.1, a última versão padrão à qual o JavaScript se baseia, foi aprovada em Junho de 2011.
- -

O JavaScript runtime usado nas últimas versões dos projetos Mozilla, incluindo ambos Firefox e Thunderbird, possuem amplo suporte às features do ECMAScript. Este artigo cobre as features suportadas por diferentes versões do JavaScript runtime da Mozilla.

- -
-

NT: Resolvi manter o termo feature nesta tradução porque é o termo mais utilizado entre os desenvolvedores brasileiros. Uma feature nada mais é do que as características ou funcionalidades da linguagem.

-
- -

Features Suportadas

- -

Adicionado ao JavaScript 1.8.5 (Gecko 2, Firefox 4 e posteriores)

- -

Firefox 4 possui amplo suporte ao ECMAScript 5, incluindo o método Object.* e strict mode. Veja Novo em JavaScript 1.8.5*.

- -
-

*NT: ainda sem traduções para português.

-
- -

Adicionado ao JavaScript 1.8.1 (Gecko 1.9.1, Firefox 3.5)

- - - -

Melhorias estabelecidas pelo ECMAScript 5 foram feitas no algoritmo de análise que impede a avaliação de XHTML como código JavaScript em determinadas circunstâncias.

- -

Adicionado ao JavaScript 1.6 (Gecko 1.8, Firefox 1.5)

- -

Novos métodos Array oferem métodos melhorados para manipulá-las -- tem sido parte do JavaScript deste o JavaScript 1.6. Agora, eles foram padronizados como parte do ECMAScript 5.

- -

Veja também

- - diff --git a/files/pt-br/web/javascript/new_in_javascript/index.html b/files/pt-br/web/javascript/new_in_javascript/index.html deleted file mode 100644 index e3665a92a8..0000000000 --- a/files/pt-br/web/javascript/new_in_javascript/index.html +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: New in JavaScript -slug: Web/JavaScript/New_in_JavaScript -tags: - - JavaScript - - NeedsTranslation - - TopicStub - - Versions -translation_of: Archive/Web/JavaScript/New_in_JavaScript ---- -
{{jsSidebar("New_in_JS")}}
- -

Este capítulo contém informações sobre o histórico de versões do Javascript e situação de implementações de aplicações Mozilla/SpiderMonkey baseadas em Javascript, como o Firefox.

- -

Versões ECMAScript

- -
-
Recursos da Linguagem
-
Saiba mais sobre os padrões ECMAScript em que o Javascript é baseado.
-
Suporte ECMAScript 5
-
Status da implementação para o padrão atual ECMA-262 Edition 5.1 em engines Mozilla-based e produtos.
-
Suporte a ECMAScript 6
-
Status da implementação para o rascunho de ECMA-262 Edition 6 in em engines Mozilla-based e produtos.
-
Suporte a ECMAScript 7
-
Status da implementação para o padrão ECMA-262 Edition 7 que virá em engines Mozilla-based e produtos.
-
- -

Notas de distribuição JavaScript

- -
-
Firefox JavaScript changelog
-
Veja esse changelog para características de JavaScript implementadas no Firefox 5 e posteriormente.
-
Chrome JavaScript changelog
-
(TODO). Vem esse changelog para características de JavaScript implementas nas distribuições do Chrome.
-
- -

Versões do JavaScript

- -

Obsoleto (Deprecated) ({{deprecated_inline()}}). O versionamento explícito e o opt-in das características da linguagem foi específico da Mozilla e está em processo de remoção. Firefox 4 foi a última versão do navegador que fazia referência a uma versão de JavaScript (1.8.5). Com os novos padrões ECMA, as características da linguagem JavaScript, agora são mencionadas regularmente com sua definição inicial em ECMA-262, por exemplo a Edição 6 (ES6).

- -

JavaScript foi lançado na versão 1.0 em março de 1996, no Netscape Navigator 2.0 e no Internet Explorer 2.0.

- -
-
JavaScript 1.1
-
Versão embarcada no Netscape Navigator 3.0. Lançada em 19 de agosto de 1996.
-
JavaScript 1.2
-
Versão embarcada no Netscape Navigator 4.0-4.05. Lançada em 11 de junho de 1997. 
-
JavaScript 1.3
-
Versão embarcada no Netscape Navigator 4.06-4.7x. Lançada em 19 de outubro de 1998.
- O trabalho de padronização estava de acordo com o ECMA-262, 1ª e 2ª edições.
-
JavaScript 1.4
-
Versão embarcada no Netscape's server side JavaScript. Lançada em 1999.
-
JavaScript 1.5
-
Versão embarcada no Netscape Navigator 6.0 e no Firefox 1.0. Lançada em 14 de novembro de 2000.
- O trabalho de padronização estava de acordo com o ECMA-262, 3ª edição. 
-
JavaScript 1.6
-
Versão embarcada no Firefox 1.5. Lançada em novembro de 2005. Inclui ECMAScript para XML (E4X), novos métodos new Array além de métodos genéricos de  String e Array.
-
JavaScript 1.7
-
Versão embarcada no Firefox 2. Lançada em outubro de 2006.
- Inclui generators, iterators, compreensões de array, expressões let e tarefas de desestruturação.
-
JavaScript 1.8
-
Versão embarcada no Firefox 3. Lançada em junho de 2008.
- Inlcui expressões de closure, generator expressions e Array.reduce()
-
JavaScript 1.8.1
-
Versão embarcada no Firefox 3.5. Lançada em 30 de junho de 2009.
- Inclui o JIT TraceMonkey e suporte nativo ao JSON.
-
JavaScript 1.8.2
-
Versão embarcada no Firefox 3.6. Lançada em 22 de junho de 2009.
- Inclui apenas mudanças de menor importância.
-
JavaScript 1.8.5
-
Versão embarcada no Firefox 4. Lançada em 27 de julho de 2010.
- Inclui muitas características novas em conformidade à 5 ª edição do ECMA-262. Esta é a última versão do JavaScript.
-
- -

Características que ainda necessitam do opt-in de versão

- -
-
let statement
-
let statement necessita da versão opt-in 1.7 (ou maior) do JavaScript. Veja {{bug(932517)}} e {{bug(932513)}}.
-
diff --git a/files/pt-br/web/javascript/reference/global_objects/array/observe/index.html b/files/pt-br/web/javascript/reference/global_objects/array/observe/index.html deleted file mode 100644 index d1b06c5ecf..0000000000 --- a/files/pt-br/web/javascript/reference/global_objects/array/observe/index.html +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: Array.observe() -slug: Web/JavaScript/Reference/Global_Objects/Array/observe -translation_of: Archive/Web/JavaScript/Array.observe ---- -
{{JSRef}} {{non-standard_header}}
- -

O método Array.observe() é usado para observar mudanças de forma assíncrona em Arrays, de forma similar ao método {{jsxref("Object.observe()")}} para objetos. O método fornece um conjunto de mudanças em ordem de ocorrência. É equivalente ao método Object.observe() invocado com a lista aceita ["add", "update", "delete", "splice"].

- -

Sintaxe

- -
Array.observe(arr, callback)
- -

Parâmetros

- -
-
arr
-
O array a ser observado.
-
callback
-
A função chamado cada vez que ocorrem mudanças, com o seguinte argumento: -
-
changes
-
Um array de objetos, sendo que cada um representa uma mudança. As propriedades destes objetos são: -
    -
  • name: O nome da propriedade que mudou.
  • -
  • object: O array modificado depois que a mudança ocorreu.
  • -
  • type: Uma string que indica o tipo de mudança que ocorreu. Pode ser "add", "update", "delete", ou "splice".
  • -
  • oldValue: Apenas para os tipos "update" e "delete". O valor antes da mudança.
  • -
  • index: Apenas para o tipo "splice". O índice no qual ocorreu a mudança.
  • -
  • removed: Apenas para o tipo "splice". Um array de elementos removidos.
  • -
  • addedCount: Apenas para o tipo "splice". O número de elementos adicionados.
  • -
-
-
-
-
- -

Descrição

- -

A função callback é chamada cada vez que uma mudança é feita em arr, com um array de todas as mudanças na ordem em que elas ocorreram.

- -
-

Mudanças feitas via métodos de Array, tais como Array.prototype.pop() serão reportados como mudanças do tipo "splice". Mudanças do tipo índice que não alteram o tamanho do array podem ser reportadas como mudanças do tipo "update".

-
- -

Exemplos

- -

Adicionando diferentes tipos em log

- -
var arr = ['a', 'b', 'c'];
-
-Array.observe(arr, function(changes) {
-  console.log(changes);
-});
-
-arr[1] = 'B';
-// [{type: 'update', object: <arr>, name: '1', oldValue: 'b'}]
-
-arr[3] = 'd';
-// [{type: 'splice', object: <arr>, index: 3, removed: [], addedCount: 1}]
-
-arr.splice(1, 2, 'beta', 'gamma', 'delta');
-// [{type: 'splice', object: <arr>, index: 1, removed: ['B', 'c', 'd'], addedCount: 3}]
-
- -

Especificações

- -

Strawman proposal specification.

- -

Compatibilidade com Browser

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FuncionalidadeChromeFirefox (Gecko)Internet ExplorerOperaSafari
Suporte básico{{CompatChrome("36")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FuncionalidadeAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Suporte básico{{CompatNo}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -

Veja também

- - diff --git a/files/pt-br/web/javascript/reference/global_objects/array/unobserve/index.html b/files/pt-br/web/javascript/reference/global_objects/array/unobserve/index.html deleted file mode 100644 index a509f16afb..0000000000 --- a/files/pt-br/web/javascript/reference/global_objects/array/unobserve/index.html +++ /dev/null @@ -1,129 +0,0 @@ ---- -title: Array.unobserve() -slug: Web/JavaScript/Reference/Global_Objects/Array/unobserve -translation_of: Archive/Web/JavaScript/Array.unobserve ---- -
{{JSRef}}
- -
O método Array.unobserve() é usado para remover observers adicionados pelo {{jsxref("Array.observe()")}}.
- -
 
- -

Sintaxe

- -
Array.unobserve(arr, callback)
- -

Parâmetros

- -
-
arr
-
O array para remover os observers.
-
callback
-
A referência para o observer para parar de ser chamada a toda vez em que algo é modificado no array arr.
-
- -

Descrição

- -

Array.unobserve() deve ser chamado após o  {{jsxref("Array.observe()")}} a fim de remover um observers de um array.

- -

O callback deve ser uma referencia à uma função e não a uma função anônima, porquê esta referencia será usada para remover o observer anterior. É inútil chamar o Array.unobserve() com uma função anônima como callback, não removerá nenhum observer.

- -

Exemplos

- -

Desobservando um array

- -
var arr = [1, 2, 3];
-
-var observer = function(changes) {
-  console.log(changes);
-}
-
-Array.observe(arr, observer);
-​
-arr.push(4);
-// [{type: "splice", object: <arr>, index: 3, removed:[], addedCount: 1}]
-
-Array.unobserve(arr, observer);
-
-arr.pop();
-// O callback não foi chamado
- -

Usando uma função anônima

- -
var persons = ['Khalid', 'Ahmed', 'Mohammed'];
-
-Array.observe(persons, function (changes) {
-  console.log(changes);
-});
-
-persons.shift();
-// [{type: "splice", object: <arr>, index: 0, removed: [ "Khalid" ], addedCount: 0 }]
-
-Array.unobserve(persons, function (changes) {
-  console.log(changes);
-});
-
-persons.push('Abdullah');
-// [{type: "splice", object: <arr>, index: 2, removed: [], addedCount: 1 }]
-// O callback sempre será chamado
-
- -

Compatibilidade com os navegadores

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Suporte básico{{CompatChrome("36")}}{{CompatNo}}{{CompatNo}}{{CompatOpera("23")}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Suporte básico{{CompatNo}}{{CompatChrome("36")}}{{CompatNo}}{{CompatNo}}{{CompatOpera("23")}}{{CompatNo}}
-
- -

Ver também

- - diff --git a/files/pt-br/web/javascript/reference/global_objects/function/arity/index.html b/files/pt-br/web/javascript/reference/global_objects/function/arity/index.html deleted file mode 100644 index 93e4fb75b5..0000000000 --- a/files/pt-br/web/javascript/reference/global_objects/function/arity/index.html +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: Function.arity -slug: Web/JavaScript/Reference/Global_Objects/Function/arity -tags: - - Função - - JavaScript - - Não implementado - - Obsoleto - - Propriedade -translation_of: Archive/Web/JavaScript/Function.arity ---- -
{{JSRef("Global_Objects", "Function")}} {{obsolete_header}}
- -

Resumo

- -

A propriedade arity é usada para retornar o número de argumentos esperados por uma função, entretanto, ela não existe mais e foi substituida pela propriedade {{jsxref("Function.prototype.length")}}.

- -

Especificações

- -

Implementada no JavaScript 1.2. Depreciada no JavaScript 1.4.

- -

Compatibilidade com navegadores

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -

Veja também

- - diff --git a/files/pt-br/web/javascript/reference/global_objects/function/isgenerator/index.html b/files/pt-br/web/javascript/reference/global_objects/function/isgenerator/index.html deleted file mode 100644 index b370305940..0000000000 --- a/files/pt-br/web/javascript/reference/global_objects/function/isgenerator/index.html +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Function.prototype.isGenerator() -slug: Web/JavaScript/Reference/Global_Objects/Function/isGenerator -tags: - - Função - - Não padronizados - - Obsoleto - - metodo -translation_of: Archive/Web/JavaScript/Function.isGenerator ---- -
{{JSRef}} {{non-standard_header}}
- -

O método não padronizado isGenerator() é usado para determinar se uma função é ou não um gerador. Ele foi removido do Firefox a partir da versão 58.

- -

Sintaxe

- -
fun.isGenerator()
- -

Valor de retorno

- -

Um {{jsxref("Boolean")}} que indica se dada função é ou nao um gerador.

- -

Descrição

- -

O método isGenerator() determina se uma função fun é ou não um gerador. Fez parte de uma Proposta Inicial de Harmonia, mas não foi incluído na especificação do ECMAScript 2015.

- -

Exemplos

- -
function f() {}
-
-function* g() {
-  yield 42;
-}
-
-console.log('f.isGenerator() = ' + f.isGenerator()); // f.isGenerator() = false
-console.log('g.isGenerator() = ' + g.isGenerator()); // g.isGenerator() = true
-
- -

Specificações

- -

Não faz parte de nenhuma especificação. Implementado no JavaScript 1.8.6.

- -

Compatibilidade do Navegador

- -
- - -

{{Compat("javascript.builtins.Function.isGenerator")}}

-
- -

Veja também

- - diff --git a/files/pt-br/web/javascript/reference/global_objects/iterador/index.html b/files/pt-br/web/javascript/reference/global_objects/iterador/index.html deleted file mode 100644 index 1d00706e61..0000000000 --- a/files/pt-br/web/javascript/reference/global_objects/iterador/index.html +++ /dev/null @@ -1,184 +0,0 @@ ---- -title: Iterator -slug: Web/JavaScript/Reference/Global_Objects/Iterador -translation_of: Archive/Web/Iterator ---- -
{{jsSidebar("Objects")}}
- -
Non-standard. The Iterator function is a SpiderMonkey-specific feature, and will be removed at some point. For future-facing usages, consider using for..of loops and the iterator protocol.
- -

A função Iterator retorna um objeto que implementa o protocolo legado do iterador e itera sobre propriedades enumeraveis do objeto.

- -

Syntax

- -
Iterator(object, [keyOnly])
- -

Parametros

- -
-
Objeto
-
Objeto que itera sobre as propriedades
-
Se keyOnly for um valor verdadeiro, Iterator.prototype.next retorna somente o nome_da_propriedade.
-
- -

Description

- -

Returns Iterator instance that iterates over object. Iterator instance returns [property_name, property_value] array for each iteration if keyOnly is falsy,  otherwise, if keyOnly is truthy, it returns property_name for each iteration.  If object is the Iterator instance or {{jsxref("Generator")}} instance, it returns object itself.

- -

Properties

- -
-
Iterator.prototype[@@iterator]
-
Returns a function that returns iterator object, that conforms to {{jsxref("Iteration_protocols", "iterator protocol", "", 1)}}.
-
- -

Methods

- -
-
Iterator.prototype.next
-
Returns next item in the [property_name, property_value] format or property_name only. It throws StopIteration if there are no more items.
-
- -

Examples

- -

Iterating over properties of an object

- -
var a = {
-  x: 10,
-  y: 20,
-};
-var iter = Iterator(a);
-console.log(iter.next()); // ["x", 10]
-console.log(iter.next()); // ["y", 20]
-console.log(iter.next()); // throws StopIteration
-
- -

Iterating over properties of an object with legacy destructuring for-in statement

- -
var a = {
-  x: 10,
-  y: 20,
-};
-
-for (var [name, value] in Iterator(a)) {
-  console.log(name, value);   // x 10
-                              // y 20
-}
-
- -

Iterating with for-of

- -
var a = {
-  x: 10,
-  y: 20,
-};
-
-for (var [name, value] of Iterator(a)) {  // @@iterator is used
-  console.log(name, value);   // x 10
-                              // y 20
-}
-
- -

Iterates over property name

- -
var a = {
-  x: 10,
-  y: 20,
-};
-
-for (var name in Iterator(a, true)) {
-  console.log(name);   // x
-                       // y
-}
-
- -

Passing Generator instance

- -
function f() {
-  yield "a";
-  yield "b";
-}
-var g = f();
-
-console.log(g == Iterator(g)); // true
-
-for (var v in Iterator(g)) {
-  console.log(v);   // a
-                    // b
-}
-
- -

Passing Iterator instance

- -
var a = {
-  x: 10,
-  y: 20,
-};
-
-var i = Iterator(a);
-
-console.log(i == Iterator(i)); // true
-
- -

Specifications

- -

Non-standard. Not part of any current standards document.

- -

Browser compatibility

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatNo}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatNo}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -

See also

- - diff --git a/files/pt-br/web/javascript/reference/global_objects/object/count/index.html b/files/pt-br/web/javascript/reference/global_objects/object/count/index.html deleted file mode 100644 index 24b13a68b8..0000000000 --- a/files/pt-br/web/javascript/reference/global_objects/object/count/index.html +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Object.prototype.__count__ -slug: Web/JavaScript/Reference/Global_Objects/Object/count -tags: - - JavaScript - - Não-padronizado - - Objeto - - Obsoleto - - Propriedade - - Prototipo - - Prototype -translation_of: Archive/Web/JavaScript/Object.count ---- -
{{JSRef}}{{Non-standard_Header}}{{obsolete_header("gecko2")}}
- -

A propriedade __count__ usada para armazenar a contagem de propriedades enumeráveis sobre o objeto, mas ele foi removido.

- -

Sintaxe

- -
obj.__count__
- -

Exemplos

- -
{ 1: 1 }.__count__              // 1
-[].__count__                    // 0
-[1].__count__                   // 1
-[1, /* hole */, 2, 3].__count__ // 3
-
- -

Especificações

- -

Não faz parte de qualquer especificação.

- -

Compatibilidade de navegadores

- -
- - -

{{Compat("javascript.builtins.Object.count")}}

-
- -

Veja também

- - diff --git a/files/pt-br/web/javascript/reference/global_objects/object/observe/index.html b/files/pt-br/web/javascript/reference/global_objects/object/observe/index.html deleted file mode 100644 index c9964127c5..0000000000 --- a/files/pt-br/web/javascript/reference/global_objects/object/observe/index.html +++ /dev/null @@ -1,161 +0,0 @@ ---- -title: Object.observe() -slug: Web/JavaScript/Reference/Global_Objects/Object/observe -tags: - - JavaScript - - Obsoleto - - observe -translation_of: Archive/Web/JavaScript/Object.observe ---- -
-

{{JSRef}} {{obsolete_header}}

- -

O método Object.observe() era usado para observações de mudanças, de forma assíncronas de um objeto. Ele fornecia um fluxo de mudanças na ordem em que elas ocorriam. Porém, está API foi depreciada e removida dos navegadores. Você pode utilizar o objeto {{jsxref("Proxy")}} como alternativa.

-
- -

Sintaxe

- -
Object.observe(obj, callback)
- -

Parâmetros

- -
-
obj
-
O objeto a ser observado.
-
callback
-
A função chamada cada vez que as alterações são feitas, com o seguinte argumento: -
-
changes
-
Um array de objetos onde cada item representa uma mudança. As propriedades destes objetos de mudança são: -
    -
  • name: O nome da propriedade que foi alterada.
  • -
  • object: O objeto alterado depois que a mudança foi feita.
  • -
  • type: Uma string indicando o tipo de mudança. Pode ser "add", "update", ou "delete".
  • -
  • oldValue: Apenas para os tipos "update" e "delete". O valor antes da alteração.
  • -
-
-
acceptList
-
A lista dos tipos de alterações a serem observadas no objeto dado para o retorno de chamada dado. Se omitida, o array ["add", "update", "delete", "reconfigure", "setPrototype", "preventExtensions"] será usado.
-
-

Retorno

- -

O objeto será retornado.

-
-
-
-
- -

Descrição

- -

O callback é chamado à cada vez que uma mudança ocorre no obj, com um array contendo todas as mudanças na ordem em que elas ocorreram.

- -

Exemplos

- -

Exemplo: Registrando todos os três tipos diferentes

- -
var obj = {
-  foo: 0,
-  bar: 1
-};
-
-Object.observe(obj, function(changes) {
-  console.log(changes);
-});
-
-obj.baz = 2;
-// [{name: 'baz', object: <obj>, type: 'add'}]
-
-obj.foo = 'hello';
-// [{name: 'foo', object: <obj>, type: 'update', oldValue: 0}]
-
-delete obj.baz;
-// [{name: 'baz', object: <obj>, type: 'delete', oldValue: 2}]
-
- -

Exemplo: Data Binding

- -
// Um modelo chamado "user"
-var user = {
-  id: 0,
-  name: 'Brendan Eich',
-  title: 'Mr.'
-};
-
-// Criando uma saudação para o user
-function updateGreeting() {
-  user.greeting = 'Olá, ' + user.title + ' ' + user.name + '!';
-}
-updateGreeting();
-
-Object.observe(user, function(changes) {
-  changes.forEach(function(change) {
-    // Sempre que o name e o title mudarem, o updateGreeting será executado
-    if (change.name === 'name' || change.name === 'title') {
-      updateGreeting();
-    }
-  });
-});
-
- -

Especificações

- -

Strawman proposal for ECMAScript 7.

- -

Compatibilidade com Navegadores

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
RecursoChromeFirefox (Gecko)Internet ExplorerOperaSafari
Suporte Básico{{CompatChrome("36")}}{{CompatNo}}{{CompatNo}}{{CompatOpera("23")}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
RecursoAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Suporte Básico{{CompatNo}}{{CompatChrome("36")}}{{CompatNo}}{{CompatNo}}{{CompatOpera("23")}}{{CompatNo}}
-
- -

Veja também

- - diff --git a/files/pt-br/web/javascript/reference/operators/array_comprehensions/index.html b/files/pt-br/web/javascript/reference/operators/array_comprehensions/index.html deleted file mode 100644 index c035f757d7..0000000000 --- a/files/pt-br/web/javascript/reference/operators/array_comprehensions/index.html +++ /dev/null @@ -1,207 +0,0 @@ ---- -title: Array comprehensions -slug: Web/JavaScript/Reference/Operators/Array_comprehensions -tags: - - Array - - ECMAScript7 - - JavaScript - - Operador -translation_of: Archive/Web/JavaScript/Array_comprehensions ---- -

{{jsSidebar("Operators")}}

- -

Sumário

- -

 

- -

A sintaxe de array comprehension trata-se de uma expressão JavaScript que lhe permite rapidamente montar um novo array com base em outro já existente. As comprehensions já existem em várias outras linguagens e estarão então presentes no padrão ECMAScript 7.

- -

Veja abaixo as diferenças para a antiga implementação no SpiderMOnkey, baseado nas propostas para o ECMAScript 4.

- -

Sintaxe

- -
[for (x of iterable) x]
-[for (x of iterable) if (condition) x]
-[for (x of iterable) for (y of iterable) x + y]
-
- -

Descrição

- -

Dentro de array comprehensions dois tipos de components são permitidos: 

- - - -

A iteração por for-of deve sempre, ser a primeira componente. Multiplos for-of ou ifs podem  também ser permitidos.

- -

Exemplos

- -

Array comprehensions simples

- -
[for (i of [ 1, 2, 3 ]) i*i ];
-// [ 1, 4, 9 ]
-
-var abc = [ "A", "B", "C" ];
-[for (letters of abc) letters.toLowerCase()];
-// [ "a", "b", "c" ]
- -

Array comprehensions com if

- -
var years = [ 1954, 1974, 1990, 2006, 2010, 2014 ];
-[for (year of years) if (year > 2000) year];
-// [ 2006, 2010, 2014 ]
-[for (year of years) if (year > 2000) if(year < 2010) year];
-// [ 2006], the same as below:
-[for (year of years) if (year > 2000 && year < 2010) year];
-// [ 2006]
-
- -

Array comprehensions comparado a mapfilter

- -

Um modo fácil de entender a sintaxe de array comprehension é comparar com os métodos {{jsxref("Array.map", "map")}} e {{jsxref("Array.filter", "filter")}}:

- -
var numbers = [ 1, 2, 3 ];
-
-numbers.map(function (i) { return i * i });
-[for (i of numbers) i*i ];
-// both is [ 1, 4, 9 ]
-
-numbers.filter(function (i) { return i < 3 });
-[for (i of numbers) if (i < 3) i];
-// both is [ 1, 2 ]
-
- -

Array comprehensions com dois arrays

- -

Utilizando dois iteradores for-of, com dois arrays:

- -
var numbers = [ 1, 2, 3 ];
-var letters = [ "a", "b", "c" ];
-
-var cross = [for (i of numbers) for (j of letters) i+j];
-// [ "1a", "1b", "1c", "2a", "2b", "2c", "3a", "3b", "3c" ]
-
-var grid = [for (i of numbers) [for (j of letters) i+j]];
-// [
-//  ["1a", "1b", "1c"],
-//  ["2a", "2b", "2c"],
-//  ["3a", "3b", "3c"]
-// ]
-
-[for (i of numbers) if (i > 1) for (j of letters) if(j > "a") i+j]
-// ["2b", "2c", "3b", "3c"], the same as below:
-
-[for (i of numbers) for (j of letters) if (i > 1) if(j > "a") i+j]
-// ["2b", "2c", "3b", "3c"]
-
-[for (i of numbers) if (i > 1) [for (j of letters) if(j > "a") i+j]]
-// [["2b", "2c"], ["3b", "3c"]], not the same as below:
-
-[for (i of numbers) [for (j of letters) if (i > 1) if(j > "a") i+j]]
-// [[], ["2b", "2c"], ["3b", "3c"]]
-
- -

Especificações

- - - - - - - - - - - - - - -
SpecificationStatusComment
Proposed for ECMAScript 7No draft available yetEstava inicialmente no rascunho para o ES6, porém foi removido na revisão 27 (Agosto, 2014). Veja as revisões antigas do ES6 para especificações de semântica. Uma versão atualizada estará de volta em um novo rascunho do ES7.
- -

Compatibilidade

- -

{{ CompatibilityTable() }}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{ CompatNo() }}{{ CompatGeckoDesktop("30") }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{ CompatNo() }}{{ CompatNo() }}{{ CompatGeckoMobile("30") }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
-
- -

Notas sobre implementações para o SpiderMonkey

- - - -

Diferenças para as antiga JS1.7/JS1.8 comprehensions

- - - -

Veja Também

- - diff --git a/files/pt-br/web/javascript/reference/operators/expression_closures/index.html b/files/pt-br/web/javascript/reference/operators/expression_closures/index.html deleted file mode 100644 index afae2c0459..0000000000 --- a/files/pt-br/web/javascript/reference/operators/expression_closures/index.html +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: Expression closures -slug: Web/JavaScript/Reference/Operators/Expression_closures -translation_of: Archive/Web/JavaScript/Expression_closures ---- -
{{JSSidebar("Operators")}}{{Non-standard_Header}}{{Obsolete_Header("gecko60")}} -
Não padronizado. Não use!
-A síntaxe expressão closure syntax é uma feature especifica ao Firefox que foi deprecada e foi removida a partir do Firefox 60. Para usos futuros considere usar arrow functions.
-
- -

Expressões fechamentos são uma  forma curta de sintaxe de função para escrever funções simples.

- -

Síntaxe

- -
function [nome]([param1[, param2[, ..., paramN]]])
-   expressão
-
- -

Parâmetros

- -
-
nome
-
O nome da função. Pode ser omitido, passando a ser nesse caso uma função anónima. O nome só é local ao corpo da função.
-
paramN
-
Nome do parâmetro a ser passado à função. Uma função pode receber até 255 argumentos.
-
expressão
-
A expressão pela qual o corpo da função é composta
-
- -

Descrição

- -

Esta adição é nada mais que uma maneira reduzida de escreve funções simples, dando à linguagem algo semelhante a Notação Lambda.

- -

JavaScript 1.7 e anterior:

- -
function(x) { return x * x; }
- -

JavaScript 1.8:

- -
function(x) x * x
- -

Esta Síntaxe permite omitir as chavetas e o 'return' - fazendo-os implícitos. Não benifício adicional em escrever código desta forma para além de ser sintáticamente reduzido.

- -

Exemplos

- -

Uma maneira reduzida de fazer bind de EventListeners:

- -
 document.addEventListener('click', function() false, true);
-
- -

Usando esta função com algumas funções de array do JavaScript 1.6:

- -
elems.some(function(elem) elem.type == 'text');
-
- -

Compatibilidade do Browser

- - - -

{{Compat("javascript.operators.expression_closures")}}

- -

Ver também

- - diff --git a/files/pt-br/web/javascript/reference/operators/generator_comprehensions/index.html b/files/pt-br/web/javascript/reference/operators/generator_comprehensions/index.html deleted file mode 100644 index 1cbfb286f4..0000000000 --- a/files/pt-br/web/javascript/reference/operators/generator_comprehensions/index.html +++ /dev/null @@ -1,169 +0,0 @@ ---- -title: Generator comprehensions -slug: Web/JavaScript/Reference/Operators/Generator_comprehensions -translation_of: Archive/Web/JavaScript/Generator_comprehensions ---- -
{{JSSidebar("Operators")}}{{Non-standard_Header}}{{Obsolete_Header("gecko58")}} -
-

Não padronizado. Não use!
- A sintaxe de generator comprehensions não é padronizada e foi removida a partir do Firefox 58. Para usos futuros, considere o uso de {{JSxRef ("Statements / function *", "generator", "", 1)}}.

-
-
- -

A sintaxe de generator comprehension foi uma expressão em JavaScript que permitia montar rapidamente um nova função geradora baseada em um objeto iterável existente. Porém, ela foi removida do padrão e da implementação Firefox. Não a use!

- -

Sintaxe

- -
(for (x of iterable) x)
-(for (x of iterable) if (condition) x)
-(for (x of iterable) for (y of iterable) x + y)
-
- -

Descrição

- -

Dentro de generator comprehensions, são permitidos dois tipos de componentes:

- - - -

A iteração for-of é sempre o primeiro componente. Várias iterações for-of or declarações if são permitidas.

- -

Uma desvantagem significativa das {{JSxRef("Operators/Array_comprehensions","array comprehensions","","true")}} é que elas causam a construção de um array inteiro na memória. Quando a entrada para a comprehension é em si um pequeno array ,a sobrecarga envolvida é insignificante — mas quando a entrada é um grande array ou um generator custoso (ou mesmo infinito), a criação de um novo array pode ser problemática.

- -

Geradores permitem o cálculo lento de sequências, com items calculados sob demanda conforme a necessidade. Generator comprehensions são sintaticamente quase idênticos aos array comprehensions — elas usam parênteses invés de chaves — mas invés de construir um array, criam um gerador que pode executar lentamente. Eles podem ser considerados como uma sintaxe abreviada para criar geradores

- -

Suponha que temos um interador it que itera sobre uma grande sequência de inteiros. Queremos criar um novo iterador que irá iterar sobre seus dobros. Um array comprehension criaria na memória um array completo contendo os valores dobrados:

- -
var doubles = [for (i in it) i * 2];
-
- -

Um generator comprehension por outro lado criaria um novo iterador que criaria valores dobrados sob demanda conforme a necessidade:

- -
var it2 = (for (i in it) i * 2);
-console.log(it2.next()); // O primeiro valor, duplicado
-console.log(it2.next()); // O segundo valor, duplicado
-
- -

Quando um generator comprehension é usado como um argumento para uma função, os parênteses usados para a chamada da função significam que os parênteses externos podem ser omitidos:

- -
var result = doSomething(for (i in it) i * 2);
-
- -

A diferença significativa entre os dois exemplos começam pelo uso da generator comprehension, você teria apenas que fazer um loop sobre a estrutura 'obj' uma vez, total, ao invés de uma vez ao compreender o array, e mais uma vez ao iterar sobre ele.

- -

Exemplos

- -

Simples generator comprehensions

- -
(for (i of [1, 2, 3]) i * i );
-// generator function which yields 1, 4, and 9
-
-[...(for (i of [1, 2, 3]) i * i )];
-// [1, 4, 9]
-
-var abc = ['A', 'B', 'C'];
-(for (letters of abc) letters.toLowerCase());
-// generator function which yields "a", "b", and "c"
-
- -

Generator comprehensions com declaração if

- -
var years = [1954, 1974, 1990, 2006, 2010, 2014];
-
-(for (year of years) if (year > 2000) year);
-// generator function which yields 2006, 2010, and 2014
-
-(for (year of years) if (year > 2000) if (year < 2010) year);
-// generator function which yields 2006, the same as below:
-
-(for (year of years) if (year > 2000 && year < 2010) year);
-// generator function which yields 2006
-
- -

Generator comprehensions comparadas à função geradora

- -

Um maneira fácil de entender a sintaxe de generator comprehension, é compará-la com a função geradora.

- -

Exemplo 1: Gerador simples.

- -
var numbers = [1, 2, 3];
-
-// Generator function
-(function*() {
-  for (let i of numbers) {
-    yield i * i;
-  }
-})();
-
-// Generator comprehension
-(for (i of numbers) i * i );
-
-// Result: both return a generator which yields [1, 4, 9]
-
- -

Exemplo 2: Usando if no gerador.

- -
var numbers = [1, 2, 3];
-
-// Generator function
-(function*() {
-  for (let i of numbers) {
-    if (i < 3) {
-      yield i * 1;
-    }
-  }
-})();
-
-// Generator comprehension
-(for (i of numbers) if (i < 3) i);
-
-// Result: both return a generator which yields [1, 2]
- -

Especificações

- -

As generator comprehensions estavam inicialmente no rascunho do ECMAScript 2015, mas foram removidas na revisão 27 (agosto de 2014). Por favor, veja as revisões mais antigas do ES2015 para a semântica de especificação.

- -

Compatibilidade do navegador

- - - -

{{Compat("javascript.operators.generator_comprehensions")}}

- -

Diferenças para as antigas JS1.7/JS1.8 comprehensions

- -
Comprehensions das versões JS1.7/JS1.8 foram removidas da Gecko 46 ({{bug(1220564)}}).
- -

Sintaxe antiga das comprehensions (não use mais!):

- -
(X for (Y in Z))
-(X for each (Y in Z))
-(X for (Y of Z))
-
- -

Diferenças:

- - - -

Veja também

- - diff --git a/files/pt-br/web/javascript/reference/statements/for_each...in/index.html b/files/pt-br/web/javascript/reference/statements/for_each...in/index.html deleted file mode 100644 index 8206aa9f5a..0000000000 --- a/files/pt-br/web/javascript/reference/statements/for_each...in/index.html +++ /dev/null @@ -1,126 +0,0 @@ ---- -title: for each...in -slug: Web/JavaScript/Reference/Statements/for_each...in -tags: - - Declaração - - Deprecado - - Deprecated - - JavaScript - - Obsoleto -translation_of: Archive/Web/JavaScript/for_each...in ---- -
{{jsSidebar("Statements")}}
- -
-

A declaração for each...in está obsoleta como parte do padrão ECMA-357 (E4X). O suporte E4X foi removido, mas o for each...in não será desativado e removido por questões de compatibilidade que precisam ser consideradas.  Ao invés disso, procure utilizar for...of. (Por favor, referir-se a {{ bug("791343")}}.)

- -

O Firefox agora alerta sobre o uso de for each...in e não funciona mais no Firefox Nighly. Por favor veja Alerta: Loops for-each-in do JavaScript 1.6 estão obsoletos para ajuda com a migração.

-
- -

A declaração for each...in repete uma variável especifica sobre todos os valores das propriedades do objeto. Para cada propriedade distinta, uma declaração específica é executada.

- -

Sintaxe

- -
for each (variable in object) {
-  statement
-}
- -
-
variável
-
Variável que itera sobre o valor da propriedade, opcionalmente declarado com a palavra-chave var. Essa variável é local à função, não ao loop.
-
- -
-
objeto
-
Objeto ao qual as propriedades são iteradas.
-
- -
-
declaração
-
Uma declaração a ser executada para cada propriedade. Para executar múltiplas declaração dentro do loop, utilize um bloco de declaração ({ ... }) para agrupar estas declarações.
-
- -

Descrição

- -

Algumas propriedades internas não são iterada. Isso inclui todos os métodos internos dos objetos, ex. o método String's indexOf . No entanto, todas propriedades definidas pelo usuários são iteradas.

- -

Exemplos

- -

Usando for each...in

- -

Atenção: Nunca utiliza um loop assim com arrays. Apenas utilize em objetos. Veja for...in para mais detalhes.

- -

O seguinte código itera sobre as propriedades do objeto, calculando sua soma:

- -
var sum = 0;
-var obj = {prop1: 5, prop2: 13, prop3: 8};
-
-for each (var item in obj) {
-  sum += item;
-}
-
-console.log(sum); // escreve no log "26", que é 5+13+8
- -

Especifições

- -

Não faz parte da atual especificação ECMA-262. Implementado no JavaScript 1.6 e está obsoleto.

- -

Compatibilidade de Browsers

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatNo}}{{CompatGeckoDesktop("1.8")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatNo}}{{CompatGeckoMobile("1.0")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -

Veja também

- - diff --git a/files/pt-br/web/javascript/suporte_ao_ecmascript_6_na_mozilla/index.html b/files/pt-br/web/javascript/suporte_ao_ecmascript_6_na_mozilla/index.html deleted file mode 100644 index 4ebc32748b..0000000000 --- a/files/pt-br/web/javascript/suporte_ao_ecmascript_6_na_mozilla/index.html +++ /dev/null @@ -1,264 +0,0 @@ ---- -title: Suporte ao ECMAScript 6 na Mozilla -slug: Web/JavaScript/Suporte_ao_ECMAScript_6_na_Mozilla -translation_of: Archive/Web/JavaScript/New_in_JavaScript/ECMAScript_2015_support_in_Mozilla ---- -
{{jsSidebar("New_in_JS")}}
- - - -

ECMAScript 2015 é a próxima versão padronizada, chamada "ES.next". O espoço padrão pode ser encontrado na ECMA wiki. O primeiro projeto trabalhado baseado no ECMAScript 5.1, foi publicado em 12 de Julho, 2011 como "ES.next". Como o de 2014, ECMAScript 2015 já tem suas características fixas, determinadas, será terminado em 2015 e começará a ser inserido na documentação oficial em Março de 2015 (para ser finalizada em Junho de 2015).

- -

O canal para feedbacks sobre padrões ECMAScript é o es-discuss.

- - - -

Recursos já suportados no Firefox

- -

The following features are already implemented in Firefox:

- -

Standard library

- -

Adições para o objeto Array

- - - -

Novos objetos Map e Set, e seus weak counterparts

- - - -

Novas funções Math

- - - -

Adições para o objeto Number

- - - -

Adições para o objeto Object

- - - -

New Promise object

- - - -

Adições para objeto RegExp

- - - -

Adições para objeto String

- - - -

New Symbol object

- - - -

Nova sintaxe de classe

- - - -

Arrays tipados

- -

Typed arrays are specified as part of ECMAScript 6 and no longer in their own specification.

- - - -

Expressões e operadores

- - - -

Statements

- - - -

Funções

- - - -

Outros recursos

- - - -

Features with compliance and stabilization changes ongoing

- -

Os seguintes recursos estão (parcialmente) implementados n Firefox, mas foram introduzidos muito antes do ES2015 ou ainda estão sendo discutidos pela ECMA TC39 standards body.

- - - -

Recursos ainda não suportados

- -

Os seguintes recursos estão no rascunho da especificação ECMAScript 6, mas ainda não foram implementados no firefox:

- - - -

Veja também

- - -- cgit v1.2.3-54-g00ecf