diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 21:46:22 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 21:46:22 -0500 |
commit | a065e04d529da1d847b5062a12c46d916408bf32 (patch) | |
tree | fe0f8bcec1ff39a3c499a2708222dcf15224ff70 /files/pt-br/web/javascript/reference | |
parent | 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (diff) | |
download | translated-content-a065e04d529da1d847b5062a12c46d916408bf32.tar.gz translated-content-a065e04d529da1d847b5062a12c46d916408bf32.tar.bz2 translated-content-a065e04d529da1d847b5062a12c46d916408bf32.zip |
update based on https://github.com/mdn/yari/issues/2028
Diffstat (limited to 'files/pt-br/web/javascript/reference')
11 files changed, 0 insertions, 1355 deletions
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 ---- -<div>{{JSRef}} {{non-standard_header}}</div> - -<p>O método <strong><code>Array.observe()</code></strong> é 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 <code>Object.observe()</code> invocado com a lista aceita <code>["add", "update", "delete", "splice"]</code>.</p> - -<h2 id="Sintaxe">Sintaxe</h2> - -<pre class="syntaxbox"><code>Array.observe(<var>arr</var>, <var>callback</var>)</code></pre> - -<h3 id="Parâmetros">Parâmetros</h3> - -<dl> - <dt><code>arr</code></dt> - <dd>O array a ser observado.</dd> - <dt><code>callback</code></dt> - <dd>A função chamado cada vez que ocorrem mudanças, com o seguinte argumento: - <dl> - <dt><code>changes</code></dt> - <dd>Um array de objetos, sendo que cada um representa uma mudança. As propriedades destes objetos são: - <ul> - <li><strong><code>name</code></strong>: O nome da propriedade que mudou.</li> - <li><strong><code>object</code></strong>: O array modificado depois que a mudança ocorreu.</li> - <li><strong><code>type</code></strong>: Uma string que indica o tipo de mudança que ocorreu. Pode ser <code>"add"</code>, <code>"update"</code>, <code>"delete"</code>, ou <code>"splice"</code>.</li> - <li><strong><code>oldValue</code></strong>: Apenas para os tipos <code>"update"</code> e <code>"delete"</code>. O valor antes da mudança.</li> - <li><strong><code>index</code></strong>: Apenas para o tipo <code>"splice"</code>. O índice no qual ocorreu a mudança.</li> - <li><strong><code>removed</code></strong>: Apenas para o tipo <code>"splice"</code>. Um array de elementos removidos.</li> - <li><strong><code>addedCount</code></strong>: Apenas para o tipo <code>"splice"</code>. O número de elementos adicionados.</li> - </ul> - </dd> - </dl> - </dd> -</dl> - -<h2 id="Descrição">Descrição</h2> - -<p>A função <code>callback</code> é chamada cada vez que uma mudança é feita em <code>arr</code>, com um array de todas as mudanças na ordem em que elas ocorreram.</p> - -<div class="note"> -<p>Mudanças feitas via métodos de Array, tais como <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop"><code>Array.prototype.pop()</code></a> serão reportados como mudanças do tipo <code>"splice"</code>. Mudanças do tipo índice que não alteram o tamanho do array podem ser reportadas como mudanças do tipo <code>"update"</code>.</p> -</div> - -<h2 id="Exemplos">Exemplos</h2> - -<h3 id="Adicionando_diferentes_tipos_em_log">Adicionando diferentes tipos em log</h3> - -<pre class="brush: js">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}] -</pre> - -<h2 id="Especificações">Especificações</h2> - -<p><a href="https://github.com/arv/ecmascript-object-observe">Strawman proposal specification</a>.</p> - -<h2 id="Compatibilidade_com_Browser">Compatibilidade com Browser</h2> - -<div>{{CompatibilityTable}}</div> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Funcionalidade</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Suporte básico</td> - <td>{{CompatChrome("36")}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Funcionalidade</th> - <th>Android</th> - <th>Chrome for Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Suporte básico</td> - <td>{{CompatNo}}</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="Veja_também">Veja também</h2> - -<ul> - <li><a href="//stackoverflow.com/q/29269057/778272">Em qual condição a chamada Array.observe irá "adicionar" um gatilho para um evento?</a></li> - <li>{{jsxref("Array.unobserve()")}} {{non-standard_inline}}</li> - <li>{{jsxref("Object.observe()")}} {{non-standard_inline}}</li> -</ul> 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 ---- -<div>{{JSRef}}</div> - -<div>O método Array<strong>.unobserve()</strong> é usado para remover observers adicionados pelo {{jsxref("Array.observe()")}}.</div> - -<div> </div> - -<h2 id="Sintaxe">Sintaxe</h2> - -<pre class="syntaxbox"><code>Array.unobserve(<var>arr</var>, <var>callback</var>)</code></pre> - -<h3 id="Parâmetros">Parâmetros</h3> - -<dl> - <dt><code>arr</code></dt> - <dd>O array para remover os observers.</dd> - <dt><code>callback</code></dt> - <dd><code>A referência para o observer para parar de ser chamada a toda vez em que algo é modificado no array </code><strong>arr</strong>.</dd> -</dl> - -<h2 id="Descrição">Descrição</h2> - -<p><code>Array.unobserve()</code> deve ser chamado após o {{jsxref("Array.observe()")}} a fim de remover um observers de um array.</p> - -<p>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 <strong>Array.unobserve() </strong>com uma função anônima como callback, não removerá nenhum observer.</p> - -<h2 id="Exemplos">Exemplos</h2> - -<h3 id="Desobservando_um_array">Desobservando um array</h3> - -<pre class="brush: js">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</pre> - -<h3 id="Usando_uma_função_anônima">Usando uma função anônima</h3> - -<pre class="brush: js">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 -</pre> - -<h2 id="Compatibilidade_com_os_navegadores">Compatibilidade com os navegadores</h2> - -<div>{{CompatibilityTable}}</div> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Suporte básico</td> - <td>{{CompatChrome("36")}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatOpera("23")}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Android</th> - <th>Chrome for Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Suporte básico</td> - <td>{{CompatNo}}</td> - <td>{{CompatChrome("36")}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatOpera("23")}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="Ver_também">Ver também</h2> - -<ul> - <li>{{jsxref("Array.observe()")}} {{experimental_inline}}</li> - <li>{{jsxref("Object.observe()")}} {{experimental_inline}}</li> - <li>{{jsxref("Object.unobserve()")}} {{experimental_inline}}</li> -</ul> 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 ---- -<div>{{JSRef("Global_Objects", "Function")}} {{obsolete_header}}</div> - -<h2 id="Summary" name="Summary">Resumo</h2> - -<p class="note">A propriedade <code><strong>arity</strong></code> é 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")}}.</p> - -<h2 id="Especificações">Especificações</h2> - -<p>Implementada no JavaScript 1.2. Depreciada no JavaScript 1.4.</p> - -<h2 id="Compatibilidade_com_navegadores">Compatibilidade com navegadores</h2> - -<div>{{CompatibilityTable}}</div> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Basic support</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Android</th> - <th>Chrome for Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Basic support</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="See_also" name="See_also">Veja também</h2> - -<ul> - <li>{{jsxref("Function.prototype.length")}}</li> -</ul> 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 ---- -<div>{{JSRef}} {{non-standard_header}}</div> - -<p>O método não padronizado <code><strong>isGenerator()</strong></code> é usado para determinar se uma função é ou não um <a href="/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators#Generators.3A_a_better_way_to_build_Iterators">gerador</a>. Ele foi removido do Firefox a partir da versão 58.</p> - -<h2 id="Sintaxe">Sintaxe</h2> - -<pre class="syntaxbox"><code><var>fun</var>.isGenerator()</code></pre> - -<h3 id="Valor_de_retorno">Valor de retorno</h3> - -<p>Um {{jsxref("Boolean")}} que indica se dada função é ou nao um <a href="/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators#Generators.3A_a_better_way_to_build_Iterators">gerador</a>.</p> - -<h2 id="Descrição">Descrição</h2> - -<p>O método <code>isGenerator()</code> determina se uma função <em><code>fun</code></em> é ou não um <a href="/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators#Generators.3A_a_better_way_to_build_Iterators">gerador</a>. Fez parte de uma Proposta Inicial de Harmonia, mas não foi incluído na especificação do ECMAScript 2015.</p> - -<h2 id="Exemplos">Exemplos</h2> - -<pre class="brush: js">function f() {} - -function* g() { - yield 42; -} - -console.log('f.isGenerator() = ' + f.isGenerator()); // f.isGenerator() = false -console.log('g.isGenerator() = ' + g.isGenerator()); // g.isGenerator() = true -</pre> - -<h2 id="Specificações">Specificações</h2> - -<p>Não faz parte de nenhuma especificação. Implementado no JavaScript 1.8.6.</p> - -<h2 id="Compatibilidade_do_Navegador">Compatibilidade do Navegador</h2> - -<div> -<div class="hidden">A tabela de compatibilidade nesta página é gerada a partir de dados estrurados. Se você não quiser contribuir com estes dados, por favor veja <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> e envie-nos um pull request.</div> - -<p>{{Compat("javascript.builtins.Function.isGenerator")}}</p> -</div> - -<h2 id="Veja_também">Veja também</h2> - -<ul> - <li><a href="/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators">Iteradores e geradores</a></li> -</ul> 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 ---- -<div>{{jsSidebar("Objects")}}</div> - -<div class="warning"><strong>Non-standard.</strong> The <code><strong>Iterator</strong></code> function is a SpiderMonkey-specific feature, and will be removed at some point. For future-facing usages, consider using <a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of" title="/en-US/docs/Web/JavaScript/Reference/Statements/for...of">for..of</a> loops and the <a href="/en-US/docs/Web/JavaScript/Guide/The_Iterator_protocol">iterator protocol</a>.</div> - -<p>A função <code><strong>Iterator</strong></code> retorna um objeto que implementa o protocolo legado do iterador e itera sobre propriedades enumeraveis do objeto.</p> - -<h2 id="Syntax">Syntax</h2> - -<pre class="syntaxbox">Iterator(<var>object</var>, [keyOnly])</pre> - -<h3 id="Parametros">Parametros</h3> - -<dl> - <dt><code>Objeto</code></dt> - <dd><span style="background-color: #ffffff; font-size: 1rem; font-style: inherit; font-weight: inherit; letter-spacing: -0.00278rem;">Objeto que itera sobre as propriedades</span></dd> - <dd>Se <code>keyOnly</code> for um valor verdadeiro, <code>Iterator.prototype.next</code> retorna somente o <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">nome_da_propriedade</span></font>.</dd> -</dl> - -<h2 id="Description">Description</h2> - -<p>Returns <code>Iterator</code> instance that iterates over <code>object</code>. <code>Iterator</code> instance returns <code>[property_name, property_value]</code> array for each iteration if <code>keyOnly</code> is falsy, otherwise, if <code>keyOnly</code> is truthy, it returns <code>property_name</code> for each iteration. If <code>object</code> is the <code>Iterator</code> instance or {{jsxref("Generator")}} instance, it returns <code>object</code> itself.</p> - -<h2 id="Properties">Properties</h2> - -<dl> - <dt><code><strong>Iterator.prototype[@@iterator]</strong></code></dt> - <dd>Returns a function that returns iterator object, that conforms to {{jsxref("Iteration_protocols", "iterator protocol", "", 1)}}.</dd> -</dl> - -<h2 id="Methods">Methods</h2> - -<dl> - <dt><code><strong>Iterator.prototype.next</strong></code></dt> - <dd>Returns next item in the <code>[property_name, property_value]</code> format or <code>property_name</code> only. It throws <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/StopIteration">StopIteration</a></code> if there are no more items.</dd> -</dl> - -<h2 id="Examples">Examples</h2> - -<h3 id="Iterating_over_properties_of_an_object">Iterating over properties of an object</h3> - -<pre class="brush: js">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 -</pre> - -<h3 id="Iterating_over_properties_of_an_object_with_legacy_destructuring_for-in_statement">Iterating over properties of an object with legacy destructuring <code>for-in</code> statement</h3> - -<pre class="brush: js">var a = { - x: 10, - y: 20, -}; - -for (var [name, value] in Iterator(a)) { - console.log(name, value); // x 10 - // y 20 -} -</pre> - -<h3 id="Iterating_with_for-of">Iterating with <code>for-of</code></h3> - -<pre class="brush: js">var a = { - x: 10, - y: 20, -}; - -for (var [name, value] of Iterator(a)) { // @@iterator is used - console.log(name, value); // x 10 - // y 20 -} -</pre> - -<h3 id="Iterates_over_property_name">Iterates over property name</h3> - -<pre class="brush: js">var a = { - x: 10, - y: 20, -}; - -for (var name in Iterator(a, true)) { - console.log(name); // x - // y -} -</pre> - -<h3 id="Passing_Generator_instance">Passing Generator instance</h3> - -<pre class="brush: js">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 -} -</pre> - -<h3 id="Passing_Iterator_instance">Passing Iterator instance</h3> - -<pre class="brush: js">var a = { - x: 10, - y: 20, -}; - -var i = Iterator(a); - -console.log(i == Iterator(i)); // true -</pre> - -<h2 id="Specifications">Specifications</h2> - -<p>Non-standard. Not part of any current standards document.</p> - -<h2 id="Browser_compatibility">Browser compatibility</h2> - -<p>{{CompatibilityTable}}</p> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Basic support</td> - <td>{{CompatNo}}</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Android</th> - <th>Chrome for Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Basic support</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatVersionUnknown}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="See_also">See also</h2> - -<ul> - <li><a href="/en-US/docs/JavaScript/Guide/Iterators_and_Generators" title="/en-US/docs/JavaScript/Guide/Iterators_and_Generators">Iterators and Generators</a></li> - <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/StopIteration">StopIteration</a></code></li> -</ul> 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 ---- -<div>{{JSRef}}{{Non-standard_Header}}{{obsolete_header("gecko2")}}</div> - -<p>A propriedade <strong><code>__count__</code></strong> usada para armazenar a contagem de propriedades enumeráveis sobre o objeto, mas ele foi removido.</p> - -<h2 id="Sintaxe">Sintaxe</h2> - -<pre class="syntaxbox"><var>obj</var>.__count__</pre> - -<h2 id="Exemplos">Exemplos</h2> - -<pre class="brush: js">{ 1: 1 }.__count__ // 1 -[].__count__ // 0 -[1].__count__ // 1 -[1, /* hole */, 2, 3].__count__ // 3 -</pre> - -<h2 id="Especificações">Especificações</h2> - -<p>Não faz parte de qualquer especificação.</p> - -<h2 id="Compatibilidade_de_navegadores">Compatibilidade de navegadores</h2> - -<div> - - -<p>{{Compat("javascript.builtins.Object.count")}}</p> -</div> - -<h2 id="Veja_também">Veja também</h2> - -<ul> - <li><a class="external" href="http://whereswalden.com/2010/04/06/more-changes-coming-to-spidermonkey-the-magical-__count__-property-of-objects-is-being-removed/">[Blog post] Mais trocas vindo para SpiderMonkey: a mágica propriedade __count__ está sendo removid</a>a</li> -</ul> 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 ---- -<div> -<p>{{JSRef}} {{obsolete_header}}</p> - -<p>O método <strong><code>Object.observe()</code></strong> 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.</p> -</div> - -<h2 id="Sintaxe">Sintaxe</h2> - -<pre class="syntaxbox"><code>Object.observe(<var>obj</var>, <var>callback</var>)</code></pre> - -<h3 id="Parâmetros">Parâmetros</h3> - -<dl> - <dt><code>obj</code></dt> - <dd>O objeto a ser observado.</dd> - <dt><code>callback</code></dt> - <dd>A função chamada cada vez que as alterações são feitas, com o seguinte argumento: - <dl> - <dt><code>changes</code></dt> - <dd>Um array de objetos onde cada item representa uma mudança. As propriedades destes objetos de mudança são: - <ul> - <li><strong><code>name</code></strong>: O nome da propriedade que foi alterada.</li> - <li><strong><code>object</code></strong>: O objeto alterado depois que a mudança foi feita.</li> - <li><strong><code>type</code></strong>: Uma string indicando o tipo de mudança. Pode ser <code>"add"</code>, <code>"update"</code>, ou <code>"delete"</code>.</li> - <li><strong><code>oldValue</code></strong>: Apenas para os tipos <code>"update"</code> e <code>"delete"</code>. O valor antes da alteração.</li> - </ul> - </dd> - <dt><code>acceptList</code></dt> - <dd>A lista dos tipos de alterações a serem observadas no objeto dado para o retorno de chamada dado. Se omitida, o array <code>["add", "update", "delete", "reconfigure", "setPrototype", "preventExtensions"]</code> será usado.</dd> - <dt> - <h3 id="Retorno">Retorno</h3> - - <p>O objeto será retornado.</p> - </dt> - </dl> - </dd> -</dl> - -<h2 id="Descrição">Descrição</h2> - -<p>O <code>callback</code> é chamado à cada vez que uma mudança ocorre no <code>obj</code>, com um array contendo todas as mudanças na ordem em que elas ocorreram.</p> - -<h2 id="Exemplos">Exemplos</h2> - -<h3 id="Exemplo_Registrando_todos_os_três_tipos_diferentes">Exemplo: Registrando todos os três tipos diferentes</h3> - -<pre class="brush: js">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}] -</pre> - -<h3 id="Exemplo_Data_Binding">Exemplo: Data Binding</h3> - -<pre class="brush: js">// 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(); - } - }); -}); -</pre> - -<h2 id="Specifications" name="Specifications">Especificações</h2> - -<p><a href="https://github.com/arv/ecmascript-object-observe">Strawman proposal for ECMAScript 7</a>.</p> - -<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilidade com Navegadores</h2> - -<div>{{CompatibilityTable}}</div> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Recurso</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Suporte Básico</td> - <td>{{CompatChrome("36")}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatOpera("23")}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Recurso</th> - <th>Android</th> - <th>Chrome for Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Suporte Básico</td> - <td>{{CompatNo}}</td> - <td>{{CompatChrome("36")}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatOpera("23")}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="See_also" name="See_also">Veja também</h2> - -<ul> - <li>{{jsxref("Object.unobserve()")}} {{experimental_inline}}</li> - <li>{{jsxref("Array.observe()")}} {{experimental_inline}}</li> -</ul> 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 ---- -<p>{{jsSidebar("Operators")}}</p> - -<h2 id="Sumário">Sumário</h2> - -<p> </p> - -<p><span class="seoSummary"><span style="line-height: 19.0909080505371px;">A sintaxe de </span><strong style="line-height: 19.0909080505371px;">array comprehension</strong><span style="line-height: 19.0909080505371px;"> 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.</span></span></p> - -<p>Veja abaixo as diferenças para a antiga implementação no SpiderMOnkey, baseado nas propostas para o ECMAScript 4.</p> - -<h2 id="Sintaxe">Sintaxe</h2> - -<pre class="syntaxbox">[for (x of iterable) x] -[for (x of iterable) if (condition) x] -[for (x of iterable) for (y of iterable) x + y] -</pre> - -<h2 id="Descrição">Descrição</h2> - -<p>Dentro de array comprehensions dois tipos de components são permitidos: </p> - -<ul> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a> e</li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/if...else">if</a></li> -</ul> - -<p>A iteração por for-of deve sempre, ser a primeira componente. Multiplos <code>for-of</code> ou <code>if</code>s podem também ser permitidos.</p> - -<h2 id="Exemplos">Exemplos</h2> - -<h3 id="Array_comprehensions_simples">Array comprehensions simples</h3> - -<pre class="brush:js">[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" ]</pre> - -<h3 id="Array_comprehensions_com_if">Array comprehensions com <code>if</code></h3> - -<pre class="brush: js">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] -</pre> - -<h3 id="Array_comprehensions_comparado_a_map_e_filter">Array comprehensions comparado a <code>map</code> e <code>filter</code></h3> - -<p>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")}}:</p> - -<pre class="brush: js">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 ] -</pre> - -<h3 id="Array_comprehensions_com_dois_arrays">Array comprehensions com dois arrays</h3> - -<p>Utilizando dois iteradores <code>for-of, com dois arrays:</code></p> - -<pre class="brush: js">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"]] -</pre> - -<h2 id="Especificações">Especificações</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Specification</th> - <th scope="col">Status</th> - <th scope="col">Comment</th> - </tr> - <tr> - <td>Proposed for ECMAScript 7</td> - <td>No draft available yet</td> - <td>Estava 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.</td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilidade">Compatibilidade</h2> - -<p>{{ CompatibilityTable() }}</p> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Basic support</td> - <td>{{ CompatNo() }}</td> - <td>{{ CompatGeckoDesktop("30") }}</td> - <td>{{ CompatNo() }}</td> - <td>{{ CompatNo() }}</td> - <td>{{ CompatNo() }}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Android</th> - <th>Chrome for Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Basic support</td> - <td>{{ CompatNo() }}</td> - <td>{{ CompatNo() }}</td> - <td>{{ CompatGeckoMobile("30") }}</td> - <td>{{ CompatNo() }}</td> - <td>{{ CompatNo() }}</td> - <td>{{ CompatNo() }}</td> - </tr> - </tbody> -</table> -</div> - -<h3 id="Notas_sobre_implementações_para_o_SpiderMonkey">Notas sobre implementações para o SpiderMonkey</h3> - -<ul> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/let"><code>let</code></a> como um idenficador não é suportado, assim let está recentemente disponível somente para JS versão 1.7 e tags de scripts XUL.</li> - <li>Destruturação em comprehensions ainda não é suportado ({{bug(980828)}}).</li> -</ul> - -<h3 id="Diferenças_para_as_antiga_JS1.7JS1.8_comprehensions">Diferenças para as antiga JS1.7/JS1.8 comprehensions</h3> - -<ul> - <li>Comprehensions no ES7 criam um escopo para cada nó de <font face="Courier New, Andale Mono, monospace">for<code> ao invés da comprehension toda</code></font> - - <ul> - <li>Antigo: <code>[()=>x for (x of [0, 1, 2])][1]() // 2</code></li> - <li>Novo: <code>[for (x of [0, 1, 2]) ()=>x][1]() // 1, cada iteração cria uma nova binding para o </code>x.</li> - </ul> - </li> - <li>Comprehensions no ES7 iniciam com <code>for</code> ao invés de expressão de assinalamento. - <ul> - <li>Antigo: <code>[i * 2 for (i of numbers)]</code></li> - <li>Novo: <code>[for (i of numbers) <code>i * 2</code>]</code></li> - </ul> - </li> - <li>Comprehensions no ES7 podem ter multiplos <code>if</code> e <code>for</code>.</li> - <li>Comprehensions no ES7 funcionam apenas com <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a></code> e não com iterações <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in">for...in</a>.</code></li> -</ul> - -<h2 id="See_also" name="See_also">Veja Também</h2> - -<ul> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of"><code>for...of</code></a></li> - <li>{{jsxref("Operators/Generator_comprehensions", "Generator comprehensions", "" ,1)}}</li> -</ul> 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 ---- -<div>{{JSSidebar("Operators")}}{{Non-standard_Header}}{{Obsolete_Header("gecko60")}} -<div class="warning"><strong>Não padronizado. Não use!</strong><br> -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 <a href="/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions">arrow functions</a>.</div> -</div> - -<p>Expressões fechamentos são uma forma curta de sintaxe de função para escrever funções simples.</p> - -<h2 id="Síntaxe">Síntaxe</h2> - -<pre class="syntaxbox">function [<em>nome</em>]([<em>param1</em>[, <em>param2[</em>, ..., <em>paramN</em>]]]) - <em>expressão</em> -</pre> - -<h3 id="Parâmetros">Parâmetros</h3> - -<dl> - <dt><code>nome</code></dt> - <dd>O nome da função. Pode ser omitido, passando a ser nesse caso uma função <em>anónima</em>. O nome só é local ao corpo da função.</dd> - <dt><code>paramN</code></dt> - <dd>Nome do parâmetro a ser passado à função. Uma função pode receber até 255 argumentos.</dd> - <dt><code>expressão</code></dt> - <dd>A expressão pela qual o corpo da função é composta</dd> -</dl> - -<h2 id="Descrição">Descrição</h2> - -<p>Esta adição é nada mais que uma maneira reduzida de escreve funções simples, dando à linguagem algo semelhante a <a class="external" href="http://en.wikipedia.org/wiki/Lambda_calculus#Lambda_calculus_and_programming_languages">Notação Lambda</a>.</p> - -<p>JavaScript 1.7 e anterior:</p> - -<pre class="brush: js">function(x) { return x * x; }</pre> - -<p>JavaScript 1.8:</p> - -<pre class="brush: js">function(x) x * x</pre> - -<p>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.</p> - -<h2 id="Exemplos">Exemplos</h2> - -<p>Uma maneira reduzida de fazer bind de EventListeners:</p> - -<pre class="brush: js"> document.addEventListener('click', function() false, true); -</pre> - -<p>Usando esta função com algumas funções de array do JavaScript 1.6:</p> - -<pre class="brush: js">elems.some(function(elem) elem.type == 'text'); -</pre> - -<h2 id="Compatibilidade_do_Browser">Compatibilidade do Browser</h2> - - - -<p>{{Compat("javascript.operators.expression_closures")}}</p> - -<h2 id="Ver_também">Ver também</h2> - -<ul> - <li>{{JSxRef("Functions_and_function_scope", "Functions and function scope")}}</li> - <li>{{JSxRef("Function")}}</li> - <li>{{JSxRef("Statements/function", "function statement")}}</li> - <li>{{JSxRef("Operators/function", "function expression")}}</li> - <li>{{JSxRef("Statements/function*", "function* statement")}}</li> - <li>{{JSxRef("Operators/function*", "function* expression")}}</li> - <li>{{JSxRef("GeneratorFunction")}}</li> -</ul> 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 ---- -<div>{{JSSidebar("Operators")}}{{Non-standard_Header}}{{Obsolete_Header("gecko58")}} -<div class="blockIndicator warning"> -<p><strong>Não padronizado. Não use!</strong><br> - 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)}}.</p> -</div> -</div> - -<p>A sintaxe de <strong>generator comprehension</strong> 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!</p> - -<h2 id="Sintaxe">Sintaxe</h2> - -<pre class="syntaxbox">(for (x of iterable) x) -(for (x of iterable) if (condition) x) -(for (x of iterable) for (y of iterable) x + y) -</pre> - -<h2 id="Descrição">Descrição</h2> - -<p>Dentro de generator comprehensions, são permitidos dois tipos de componentes:</p> - -<ul> - <li>{{JSxRef("Statements/for...of", "for...of")}} and</li> - <li>{{JSxRef("Statements/if...else", "if")}}</li> -</ul> - -<p>A iteração <code>for-of</code> é sempre o primeiro componente. Várias iterações <code>for-of</code> or declarações <code>if</code> são permitidas.</p> - -<p>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.</p> - -<p>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</p> - -<p>Suponha que temos um interador <code>it</code> 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:</p> - -<pre class="brush: js">var doubles = [for (i in it) i * 2]; -</pre> - -<p>Um generator comprehension por outro lado criaria um novo iterador que criaria valores dobrados sob demanda conforme a necessidade:</p> - -<pre class="brush: js">var it2 = (for (i in it) i * 2); -console.log(it2.next()); // O primeiro valor, duplicado -console.log(it2.next()); // O segundo valor, duplicado -</pre> - -<p>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:</p> - -<pre class="brush: js">var result = doSomething(for (i in it) i * 2); -</pre> - -<p>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.</p> - -<h2 id="Exemplos">Exemplos</h2> - -<h3 id="Simples_generator_comprehensions">Simples generator comprehensions</h3> - -<pre class="brush:js">(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" -</pre> - -<h3 id="Generator_comprehensions_com_declaração_if">Generator comprehensions com declaração if</h3> - -<pre class="brush: js">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 -</pre> - -<h3 id="Generator_comprehensions_comparadas_à_função_geradora">Generator comprehensions comparadas à função geradora</h3> - -<p>Um maneira fácil de entender a sintaxe de generator comprehension, é compará-la com a função geradora.</p> - -<p>Exemplo 1: Gerador simples.</p> - -<pre class="brush: js">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] -</pre> - -<p>Exemplo 2: Usando <code>if</code> no gerador.</p> - -<pre class="brush: js">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]</pre> - -<h2 id="Especificações">Especificações</h2> - -<p>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.</p> - -<h2 id="Compatibilidade_do_navegador">Compatibilidade do navegador</h2> - -<div class="hidden">A tabela de compatibilidade nesta página é gerada a partir de dados estruturados. Se você quiser contribuir com os dados, confira https://github.com/mdn/browser-compat-data e envie-nos uma solicitação de recebimento.</div> - -<p>{{Compat("javascript.operators.generator_comprehensions")}}</p> - -<h2 id="Diferenças_para_as_antigas_JS1.7JS1.8_comprehensions">Diferenças para as antigas JS1.7/JS1.8 comprehensions</h2> - -<div class="blockIndicator warning">Comprehensions das versões JS1.7/JS1.8 foram removidas da Gecko 46 ({{bug(1220564)}}).</div> - -<p><strong>Sintaxe antiga das </strong><strong>comprehensions (não use mais!):</strong></p> - -<pre class="brush: js example-bad">(X for (Y in Z)) -(X for each (Y in Z)) -(X for (Y of Z)) -</pre> - -<p>Diferenças:</p> - -<ul> - <li>Comprehensions na ES7 criam um escopo para cada nó "for" invés da comprehension como um todo. - <ul> - <li>Antiga: <code>[...(()=>x for (x of [0, 1, 2]))][1]() // 2</code></li> - <li>Nova: <code>[...(for (x of [0, 1, 2]) ()=>x)][1]() // 1, cada iteração cria uma nova ligação para x</code><code>. </code></li> - </ul> - </li> - <li>Comprehensions na ES7 começam com "for" invés da expressão de atribuição. - <ul> - <li>Antiga: <code>(i * 2 for (i of numbers))</code></li> - <li>Nova: <code>(for (i of numbers) i * 2)</code></li> - </ul> - </li> - <li>Comprehensions na ES7 podem ter vários componentes <code>if</code> e <code>for</code>.</li> - <li>Comprehensions na ES7 apenas trabalham com <code>{{JSxRef("Statements/for...of", "for...of")}}</code> e não com iterações <code>{{JSxRef("Statements/for...in", "for...in")}}</code>.</li> -</ul> - -<h2 id="Veja_também">Veja também</h2> - -<ul> - <li>{{JSxRef("Statements/for...of", "for...of")}}</li> - <li>{{JSxRef("Operators/Array_comprehensions", "Array comprehensions")}}</li> -</ul> 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 ---- -<div>{{jsSidebar("Statements")}}</div> - -<div class="warning"> -<p>A declaração <code>for each...in</code> está obsoleta como parte do padrão ECMA-357 (<a href="/en-US/docs/Archive/Web/E4X" title="/en-US/docs/E4X">E4X</a>). 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 <a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of" title="/en-US/docs/JavaScript/Reference/Statements/for...of">for...of</a>. (Por favor, referir-se a {{ bug("791343")}}.)</p> - -<p><strong>O Firefox agora alerta sobre o uso de <code>for each...in e não funciona mais no Firefox Nighly.</code> Por favor veja <a href="/pt-BR/docs/Web/JavaScript/Reference/Errors/For-each-in_loops_are_deprecated">Alerta: Loops for-each-in do JavaScript 1.6 estão obsoletos</a> para ajuda com a migração.</strong></p> -</div> - -<p>A <code><strong>declaração for each...in</strong></code> repete uma variável especifica sobre todos os valores das propriedades do objeto. Para cada propriedade distinta, uma declaração específica é executada.</p> - -<h2 id="Sintaxe">Sintaxe</h2> - -<pre class="syntaxbox"><code>for each (<em>variable</em> in <em>object</em>) { - <em>statement</em> -}</code></pre> - -<dl> - <dt><code>variável</code></dt> - <dd>Variável que itera sobre o valor da propriedade, opcionalmente declarado com a palavra-chave <code>var</code>. Essa variável é local à função, não ao loop.</dd> -</dl> - -<dl> - <dt><code>objeto</code></dt> - <dd>Objeto ao qual as propriedades são iteradas.</dd> -</dl> - -<dl> - <dt><font face="Consolas, Liberation Mono, Courier, monospace">declaração</font></dt> - <dd>Uma declaração a ser executada para cada propriedade. Para executar múltiplas declaração dentro do loop, utilize um <a href="/en-US/docs/Web/JavaScript/Reference/Statements/block" title="JavaScript/Reference/Statements/block">bloco</a> de declaração (<code>{ ... }</code>) para agrupar estas declarações.</dd> -</dl> - -<h2 id="Descrição">Descrição</h2> - -<p>Algumas propriedades internas não são iterada. Isso inclui todos os métodos internos dos objetos, ex. o método <code>String</code>'s <code>indexOf</code> . No entanto, todas propriedades definidas pelo usuários são iteradas.</p> - -<h2 id="Exemplos">Exemplos</h2> - -<h3 id="Usando_for_each...in">Usando <code>for each...in</code></h3> - -<p><strong>Atenção:</strong> Nunca utiliza um loop assim com arrays. Apenas utilize em objetos. Veja <a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in"><code>for...in</code></a> para mais detalhes.</p> - -<p>O seguinte código itera sobre as propriedades do objeto, calculando sua soma:</p> - -<pre class="brush:js">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</pre> - -<h2 id="Especifições">Especifições</h2> - -<p>Não faz parte da atual especificação ECMA-262. Implementado no JavaScript 1.6 e está obsoleto.</p> - -<h2 id="Compatibilidade_de_Browsers">Compatibilidade de Browsers</h2> - -<p>{{CompatibilityTable}}</p> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Basic support</td> - <td>{{CompatNo}}</td> - <td>{{CompatGeckoDesktop("1.8")}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Feature</th> - <th>Android</th> - <th>Chrome for Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>Basic support</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatGeckoMobile("1.0")}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="Veja_também">Veja também</h2> - -<ul> - <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in" title="JavaScript/Reference/Statements/for...in">for...in</a></code> - uma declaração similar que itera sobre a propriedade <em>names</em>.</li> - <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of" title="/en-US/docs/JavaScript/Reference/Statements/for...of">for...of</a></code> - uma declaração similar que itera sobre os <em>valores</em> da propriedade mas pode ser utilizado para iterar tipos, então para para objetos genéricos.</li> - <li><code><a href="/en-US/docs/JavaScript/Reference/Statements/for" title="JavaScript/Reference/Statements/for">for</a></code></li> -</ul> |