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/es/web/javascript | |
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/es/web/javascript')
27 files changed, 0 insertions, 3504 deletions
diff --git a/files/es/web/javascript/novedades_en_javascript/1.1/index.html b/files/es/web/javascript/novedades_en_javascript/1.1/index.html deleted file mode 100644 index 985692f96c..0000000000 --- a/files/es/web/javascript/novedades_en_javascript/1.1/index.html +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Nuevo en JavaScript 1.1 -slug: Web/JavaScript/Novedades_en_JavaScript/1.1 -tags: - - JavaScript - - Versiones -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.1 ---- -<div>{{jsSidebar("New_in_JS")}}</div> - -<p>Lo siguiente es una bitácora de cambios en JavaScript desde Netscape Navigator 2.0 al 3.0. La documentación del viejo Netscape se refiere a ésto como "<a href="https://web.archive.org/web/20060318153542/wp.netscape.com/eng/mozilla/3.0/handbook/javascript/index.html">Características agregadas luego de la versión 1</a>". Netscape Navigator 3.0 se lanzó el 19 de agosto de 1996. Netscape Navigator 3.0 fue la segunda versión principal del navegador con soporte JavaScript.</p> - -<h2 id="Versiones_JavaScript">Versiones JavaScript</h2> - -<p>Netscape Navigator 3.0 también introdujo versiones del lenguage JavaScript.</p> - -<pre class="brush: html"><SCRIPT LANGUAGE="JavaScript"> <!-- JavaScript for Navigator 2.0. --> -<SCRIPT LANGUAGE="JavaScript1.1"> <!-- JavaScript for Navigator 3.0. --></pre> - -<h2 id="Características_nuevas_en_JavaScript_1.1">Características nuevas en JavaScript 1.1</h2> - -<h3 id="Objetos_nuevos">Objetos nuevos</h3> - -<ul> - <li>{{jsxref("Array")}}</li> - <li>{{jsxref("Boolean")}}</li> - <li>{{jsxref("Function")}}</li> - <li>{{jsxref("Number")}}</li> -</ul> - -<h3 id="Propiedades_nuevas">Propiedades nuevas</h3> - -<ul> - <li>{{jsxref("Number.MAX_VALUE")}}</li> - <li>{{jsxref("Number.MIN_VALUE")}}</li> - <li>{{jsxref("NaN")}}</li> - <li>{{jsxref("Number.NEGATIVE_INFINITY")}}</li> - <li>{{jsxref("Number.POSITIVE_INFINITY")}}</li> -</ul> - -<h3 id="Método_nuevos">Método nuevos</h3> - -<ul> - <li>{{jsxref("Array.prototype.join()")}}</li> - <li>{{jsxref("Array.prototype.reverse()")}}</li> - <li>{{jsxref("Array.prototype.sort()")}}</li> - <li>{{jsxref("Array.prototype.split()")}}</li> -</ul> - -<h3 id="Operadores_nuevos">Operadores nuevos</h3> - -<ul> - <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/typeof">typeof</a></code></li> - <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/void">void</a></code></li> -</ul> - -<h3 id="Otras_características_nuevas">Otras características nuevas</h3> - -<ul> - <li><code><a href="/en-US/docs/Web/HTML/Element/noscript"><noscript></a></code></li> - <li><a href="/en-US/docs/Archive/Web/LiveConnect">LiveConnect</a>. Comunicación entre Java y JavaScript.</li> -</ul> - -<h2 id="Modificaciones_en_funcionalidad_en_JavaScript_1.1">Modificaciones en funcionalidad en JavaScript 1.1</h2> - -<ul> - <li>"Eliminación de objetos". Puedes remover un objeto si estableces como <code>null</code> su objeto de referencia.</li> - <li>Se añadieron a los objetos las propiedades <code>constructor</code> y <code>prototype</code>.</li> - <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval">eval()</a></code> ahora es un método de cada objeto (anteriormente era una función integrada); ésto evalúa una cadena de código JavaScript en el contexto del objeto especificado.</li> - <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random">Math.random()</a></code> ahora funciona en todas las plataformas.</li> - <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString">toString()</a></code>: Se agregó el parámetro de radix, lo cual especifica la base a usar para representar valores numéricos.</li> - <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN">isNaN()</a></code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN"> </a> Ahora funciona en todas las plataformas (no sólamente en <em>Unix</em>)</li> - <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat">parseFloat()</a></code> <code>y <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt">parseint()</a></code> ahora resultan <code>NaN</code> en todas las plataformas si el primer caracter de la cadena especificada no puede ser convertido en número; en lanzamientos anteriores, resultaba <code>NaN</code> en <em>Solaris </em>e <em>Irix</em>, y cero en todas las otras plataformas.</li> -</ul> diff --git a/files/es/web/javascript/novedades_en_javascript/1.2/index.html b/files/es/web/javascript/novedades_en_javascript/1.2/index.html deleted file mode 100644 index 722e0d21f1..0000000000 --- a/files/es/web/javascript/novedades_en_javascript/1.2/index.html +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: New in JavaScript 1.2 -slug: Web/JavaScript/Novedades_en_JavaScript/1.2 -tags: - - JavaScript - - Versiones -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.2 ---- -<div>{{jsSidebar("New_in_JS")}}</div> - -<div>Lo siguiente es una lista de cambios de JavaScript del Navegador Netscape 3.0 a 4.0. La antigua Documentación del Navegador Netscape puede ser localizada en <a href="https://web.archive.org/web/19971015223714/http://developer.netscape.com/library/documentation/communicator/jsguide/js1_2.htm">Archivo.org</a>. Netscape Navegador 4.0 fue lanzado en el 11 de Junio de 1997. Netscape Navegador 4.0 fue la tercera principal del navegador con soporte a JavaScript.</div> - -<p> </p> - -<h2 id="JavaScript_versiones">JavaScript versiones</h2> - -<p> </p> - -<p>El Navegador Netscape 4.0 ejecuta las versiones del lenguaje JavaScript hasta el 1.2. Tenga en cuenta que el Navegador Netscape 3.0 y anteriores ignoraban script con el atributo de lenguaje colocando "JavaScript1.2" y superior.</p> - -<p> </p> - -<pre class="brush: html"><SCRIPT LANGUAGE="JavaScript1.1"> <!-- JavaScript para Navegador 3.0. --> -<SCRIPT LANGUAGE="JavaScript1.2"> <!-- JavaScript para Navegador 4.0. --></pre> - -<p> </p> - -<h2 id="Las_nuevas_características_en_JavaScript_1.2">Las nuevas características en JavaScript 1.2</h2> - -<h3 id="Los_nuevos_objetos">Los nuevos objetos</h3> - -<ul> - <li>Tu puedes crear objetos usando la notación literal (inspirado en la sintaxis literal del diccionario de Python 1.x).</li> - <li>Arreglos (Arrays) pueden ser creados usando la notación literal (Inspirados en la lista de la sintaxis literal de Python 1.X ).</li> - <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/arity">argumentos</a></li> -</ul> - -<h3 id="Nuevas_Propiedades">Nuevas Propiedades</h3> - -<ul> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/arguments">Function.arity</a></li> -</ul> - -<h3 id="Nuevos_Metodos">Nuevos Metodos</h3> - -<ul> - <li>{{jsxref("Array.prototype.concat()")}}</li> - <li>{{jsxref("Array.prototype.slice()")}}</li> - <li>{{jsxref("String.prototype.charCodeAt()")}}</li> - <li>{{jsxref("String.prototype.concat()")}}</li> - <li>{{jsxref("String.fromCharCode()")}}</li> - <li>{{jsxref("String.prototype.match()")}}</li> - <li>{{jsxref("String.prototype.replace()")}}</li> - <li>{{jsxref("String.prototype.search()")}}</li> - <li>{{jsxref("String.prototype.slice()")}}</li> - <li>{{jsxref("String.prototype.substr()")}}</li> -</ul> - -<h3 id="Nuevos_Operadores">Nuevos Operadores</h3> - -<ul> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/delete"><code>delete (eliminar)</code></a></li> - <li><a href="/en-US/docs/Web/JavaScript/Equality_comparisons_and_when_to_use_them">Operadores de Igualdad</a> (<code>==</code> y <code>!=</code>)</li> -</ul> - -<h3 id="Nuevas_Declaraciones">Nuevas Declaraciones</h3> - -<ul> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/label">Labeled</a> statements</li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/switch"><code>switch</code></a></li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/do...while"><code>do...while</code></a></li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/import"><code>import</code></a></li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/export"><code>export</code></a></li> -</ul> - -<h3 id="Otras_nuevas_características">Otras nuevas características</h3> - -<ul> - <li><a href="/en-US/docs/Web/JavaScript/Guide/Regular_Expressions">Expresiones Regulares</a></li> - <li><a href="https://web.archive.org/web/19971015223714/http://developer.netscape.com/library/documentation/communicator/jsguide/js1_2.htm">Scripts Firmados</a></li> -</ul> - -<h2 id="Cambios_en_la_funcionalidad_de_JavaScript_1.2">Cambios en la funcionalidad de JavaScript 1.2</h2> - -<ul> - <li>Ahora puedes anidar funciones dentro de funciones.</li> - <li>Número ahora convierte un objeto especificado en un número.</li> - <li>Numero ahora produce NaN en lugar de un error si <code>x</code> es una cadena que no contiene un literal bien formado numérico.</li> - <li>Cadena ahora convierte un objeto especificado en una cadena.</li> - <li>{{jsxref("Array.prototype.sort()")}} Ahora funciona en todas las plataformas. Ya no convierte los elementos definidos en Nulo (null) y los ordena a la gran final de la matriz (Array).</li> - <li>{{jsxref("String.prototype.split()")}} - <ul> - <li>Se puede tomar un argumento de expresión regular, asi como una cadena fija, por el que se divide la cadena objeto.</li> - <li>Se puede tomar un conteo límite para que no incluirá arrastrando elementos vacíos en la matriz (array) resultante.</li> - </ul> - </li> - <li>{{jsxref("String.prototype.substring()")}}: Ya no intercambia números de índice cuando el primer índice es mayor que el segundo.</li> - <li><code>toString()</code>: Ahora convierte el objeto (object) o la matriz (array) a un literal.</li> - <li>El <a href="/en-US/docs/Web/JavaScript/Reference/Statements/break"><code>break</code></a> y <a href="/en-US/docs/Web/JavaScript/Reference/Statements/continue"><code>continue</code></a> declaraciones se pueden utilizar ahora con la nueva instrucción con etiqueta.</li> -</ul> diff --git a/files/es/web/javascript/novedades_en_javascript/1.3/index.html b/files/es/web/javascript/novedades_en_javascript/1.3/index.html deleted file mode 100644 index 9fb442d96c..0000000000 --- a/files/es/web/javascript/novedades_en_javascript/1.3/index.html +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: Nuevo en JavaScript 1.3 -slug: Web/JavaScript/Novedades_en_JavaScript/1.3 -tags: - - JavaScript - - Versiones -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.3 ---- -<div>{{jsSidebar("New_in_JS")}}</div> - -<p>Lo siguiente es el archivo de cambios de JavaScript desde Netscape Navigator 4.0 al 4.5. La documentación antigua de Netscape puede encontrarse en archive.org. Netscape Navigator 4.5 fue lanzado el 19 de octubre de 1998.</p> - -<p>El cambio más importante en JavaScript 1.3 fue conseguir que estuviera en conformidad con ECMA-262 y Unicode eliminando las inconsistencias entre JavaScritp 1.2 y el nuevo estándar ECMA (publicado en junio de 1997). Características adicionales de la versión 1.2. (que en ese momento todavía no era ECMA-262) se mantuvieron en el lenguaje JavaScript (ver más adelante para una lista de las diferencias.)</p> - -<h2 id="Versiones_de_JavaScript">Versiones de JavaScript</h2> - -<p>Netscape Communicator y Netscape Navigator 4.06 y 4.5 ejecutan versiones del lenguaje JavaScript hasta la 1.3. Se hace notar que Communicator y Navigator 4.0-4.5 y anteriores ignoraban los scripts con el atributo de lenguaje "JavaScript1.3" y superior.</p> - -<pre class="brush: html"><SCRIPT LANGUAGE="JavaScript1.2"> <!-- JavaScript para Navigator 4.0. --> -<SCRIPT LANGUAGE="JavaScript1.3"> <!-- JavaScript para Navigator 4.5. --></pre> - -<h2 id="Nuevas_características_en_JavaScript_1.3">Nuevas características en JavaScript 1.3</h2> - -<h3 id="Nuevos_globales">Nuevos globales</h3> - -<ul> - <li>{{jsxref("NaN")}}</li> - <li>{{jsxref("Infinity")}}</li> - <li>{{jsxref("undefined")}}</li> -</ul> - -<h3 id="Nuevos_métodos">Nuevos métodos</h3> - -<ul> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/isFinite"><code>isFinite()</code></a></li> - <li>{{jsxref("Function.prototype.call()")}}</li> - <li>{{jsxref("Function.prototype.apply()")}}</li> - <li>{{jsxref("Date.UTC()")}}</li> - <li>{{jsxref("Date.prototype.getFullYear()")}}</li> - <li>{{jsxref("Date.prototype.setFullYear()")}}</li> - <li>{{jsxref("Date.prototype.getMilliseconds()")}}</li> - <li>{{jsxref("Date.prototype.setMilliseconds()")}}</li> - <li>{{jsxref("Date.prototype.getUTCFullYear()")}}</li> - <li>{{jsxref("Date.prototype.getUTCMonth()")}}</li> - <li>{{jsxref("Date.prototype.getUTCDate()")}}</li> - <li>{{jsxref("Date.prototype.getUTCHours()")}}</li> - <li>{{jsxref("Date.prototype.getUTCMinutes()")}}</li> - <li>{{jsxref("Date.prototype.getUTCSeconds()")}}</li> - <li>{{jsxref("Date.prototype.getUTCMilliseconds()")}}</li> - <li>{{jsxref("Date.prototype.toUTCString()")}}</li> - <li>{{jsxref("Date.prototype.setUTCFullYear()")}}</li> - <li>{{jsxref("Date.prototype.setUTCMonth()")}}</li> - <li>{{jsxref("Date.prototype.setUTCDate()")}}</li> - <li>{{jsxref("Date.prototype.setUTCHours()")}}</li> - <li>{{jsxref("Date.prototype.setUTCMinutes()")}}</li> - <li>{{jsxref("Date.prototype.setUTCSeconds()")}}</li> - <li>{{jsxref("Date.prototype.setUTCMilliseconds()")}}</li> -</ul> - -<h3 id="Otras_características_nuevas">Otras características nuevas</h3> - -<ul> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators#Using_the_Equality_Operators" title="JavaScript/Reference/Operators/Comparison_Operators#Using_the_Equality_Operators">Operadores de igualdad estrictos</a></li> - <li>Soporte de Unicode</li> - <li>Se introduce una consola de JavaScript.</li> -</ul> - -<h2 id="Funcionalidades_cambiadas_en_JavaScript_1.3">Funcionalidades cambiadas en JavaScript 1.3</h2> - -<ul> - <li>Cambios a <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date" title="JavaScript/Reference/Global_Objects/Date"><code>Date</code></a> para estar en conformidad con ECMA-262 - - <ul> - <li>Nuevo constructor <code>Date(year, month, day, [,<em>hours</em> [<em>, minutes</em> [<em>, seconds</em> [<em>, milliseconds</em> ]]]])</code></li> - <li>Parámetros de métodos adicionales: - <ul> - <li><code>setMonth(month[, date])</code></li> - <li><code>setHours(hours[, min[, sec[, ms]]])</code></li> - <li><code>setMinutes(min[, sec[, ms]])</code></li> - <li><code>setSeconds(sec[, ms])</code></li> - </ul> - </li> - </ul> - </li> - <li>La longitud de un array (propiedad length) es ahora una propiedad sin signo, un entero de 32-bit.</li> - <li>{{jsxref("Array.prototype.push()")}}: En JavaScript 1.2, el método <code>push</code> devolvía el último elemento añadido a un array. Bajo JavaScript 1.3, <code>push</code> devuelve la nueva longitud del array.</li> - <li>{{jsxref("Array.prototype.slice()")}}: En JavaScript 1.2, el método <code>splice</code> devolvía el elemento eliminado, si solo había sido eliminado un elemento (si el parámetro <code>howMany</code> es igual a <code>1</code>). En JavaScript 1.3, <code>splice</code> siempre devuelve un array con los elemento eliminados. Si un elemento es eliminado, se devuelve un array de un elemento.</li> - <li><a href="https://web.archive.org/web/20000815081640/http://developer.netscape.com/docs/manuals/communicator/jsref/js13.html#replace">Cambios</a> a {{jsxref("String.prototype.replace()")}}.</li> - <li><a href="https://web.archive.org/web/20000815081640/http://developer.netscape.com/docs/manuals/communicator/jsref/js13.html#Boolean">Cambios</a> al objeto {{jsxref("Boolean")}}.</li> - <li><a href="https://web.archive.org/web/20000815081640/http://developer.netscape.com/docs/manuals/communicator/jsref/js13.html#toString">Cambios</a> a <code>toString()</code>.</li> -</ul> - -<h2 id="Características_no-ECMA-262_de_JavaScript_1.3">Características no-ECMA-262 de JavaScript 1.3</h2> - -<p>La siguiente es una comparación entre la versión de junio de 1998 de ECMA-262 y JavaScript 1.3. Las siguientes características no fueron parte del estándar en ese moemtno, pero se implementaron en JavaScript 1.3.</p> - -<h3 id="Palabras_clave_y_operadores">Palabras clave y operadores</h3> - -<ul> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators#Using_the_Equality_Operators">Operadores de igualdad estrictos</a></li> - <li>Barra invertida (<code>\v</code> or <code>\u000B</code>) como secuencia de escape.</li> -</ul> - -<h3 id="Sentencias">Sentencias</h3> - -<ul> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/label"><code>label</code></a></li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/switch"><code>switch</code></a></li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/do...while"><code>do...while</code></a></li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/export"><code>export</code></a></li> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/import"><code>import</code></a></li> -</ul> - -<h3 id="Objetos_integrados">Objetos integrados</h3> - -<ul> - <li>{{jsxref("RegExp")}}</li> -</ul> - -<h3 id="Métodos_de_objetos_integrados">Métodos de objetos integrados</h3> - -<ul> - <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toSource">toSource()</a></code></li> - <li>{{jsxref("Object.prototype.watch()")}}</li> - <li>{{jsxref("Object.prototype.unwatch()")}}</li> - <li>{{jsxref("Function.arity")}}</li> - <li>{{jsxref("Function.prototype.apply()")}}</li> - <li>{{jsxref("Function.prototype.call()")}}</li> - <li>{{jsxref("Array.prototype.concat()")}}</li> - <li>{{jsxref("Array.prototype.pop()")}}</li> - <li>{{jsxref("Array.prototype.push()")}}</li> - <li>{{jsxref("Array.prototype.shift()")}}</li> - <li>{{jsxref("Array.prototype.slice()")}}</li> - <li>{{jsxref("Array.prototype.splice()")}}</li> - <li>{{jsxref("String.prototype.concat()")}}</li> - <li>{{jsxref("String.prototype.concat()")}}</li> - <li>{{jsxref("String.prototype.match()")}}</li> - <li>{{jsxref("String.prototype.search()")}}</li> - <li>{{jsxref("String.prototype.slice()")}}</li> - <li>{{jsxref("String.prototype.substr()")}}</li> -</ul> diff --git a/files/es/web/javascript/novedades_en_javascript/1.5/index.html b/files/es/web/javascript/novedades_en_javascript/1.5/index.html deleted file mode 100644 index 62eebd9d61..0000000000 --- a/files/es/web/javascript/novedades_en_javascript/1.5/index.html +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Novedades en Javascript 1.5 -slug: Web/JavaScript/Novedades_en_JavaScript/1.5 -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.5 ---- -<div>{{jsSidebar("New_in_JS")}}</div> - -<p>JavaScript versión 1.5 provee las siguientes nuevas características y mejoras:</p> - -<h2 id="Errores_en_tiempo_de_ejecución">Errores en tiempo de ejecución</h2> - -<p>Los errores en tiempo de ejecución son ahora reportados como <a href="/es/Guía_JavaScript_1.5/Sentencias_de_manejo_de_excepciones" title="es/Guía_JavaScript_1.5/Sentencias_de_manejo_de_excepciones">excepciones</a>.</p> - -<h2 id="Mejoras_para_el_formato_de_números"><strong>Mejoras para el formato de números</strong></h2> - -<p>El formato de números ha sido mejorado para incluir los métodos <code>Number.prototype.toExponential</code>, <code>Number.prototype.toFixed</code> y <code>Number.prototype.toPrecision</code>. Véase la página <a href="/es/Guía_JavaScript_1.5/Objetos_base_predefinidos/Objeto_Number" title="es/Guía_JavaScript_1.5/Objetos_base_predefinidos/Objeto_Number">Objeto <em>Number</em></a>.</p> - -<h2 id="Mejoras_en_expresiones_regulares"><strong>Mejoras en expresiones regulares </strong></h2> - -<p>Las siguientes mejoras para expresiones regulares han sido añadidas:</p> - -<ul> - <li>Cuantificadores: — +, *, ? y {} —ahora pueden seguirse por un <code>?</code> para forzarlos ha no ser avaros {{ mediawiki.external('greedy') }}. Vea la entrada <strong>?</strong> en la página <a href="/es/Guía_JavaScript_1.5/Escribir_un_patrón_de_expresión_regular#Uso_de_caracteres_especiales" title="es/Guía_JavaScript_1.5/Escribir_un_patrón_de_expresión_regular#Uso_de_caracteres_especiales">Escribir un patrón de expresiones regulares</a>.</li> - <li>Paréntesis sin captura: <code>(?:x)</code>:pueden ser usados en vez de paréntesis con captura <code>(x)</code>. Cuando son utilizados, las sub expresiones de compatibilidad {{ mediawiki.external('match') }} no están disponibles como referencias de respaldo {{ mediawiki.external('back-references') }}. Vea la entrada <strong>(?:x)</strong> en la página: <a href="/es/Guía_JavaScript_1.5/Escribir_un_patrón_de_expresión_regular#Uso_de_caracteres_especiales" title="es/Guía_JavaScript_1.5/Escribir_un_patrón_de_expresión_regular#Uso_de_caracteres_especiales">Escribir un patrón de expresiones regulares</a>.</li> - <li>Aserciones predictivas {{ mediawiki.external('lookahead assertions') }} positivas y negativas son soportadas. Las dos aseguran una comparación dependiente de lo que sigue en la cadena de texto que está siendo cotejada. Ver las entradas para <code>x(?=y) y x(?!y)</code> en la página: <a href="/es/Guía_JavaScript_1.5/Escribir_un_patrón_de_expresión_regular#Uso_de_caracteres_especiales" title="es/Guía_JavaScript_1.5/Escribir_un_patrón_de_expresión_regular#Uso_de_caracteres_especiales">Escribir un patrón de expresiones regulares</a>.</li> - <li>La bandera {{ mediawiki.external('flag') }} m ha sido añadida para especificar que la expresión regular deberá cotejarse sobre múltiples líneas. Véase la página <a href="/es/Guía_JavaScript_1.5/Trabajar_con_expresiones_regulares/Ejecutar_una_busqueda_global,_discriminar_mayúsculas_y_minúsculas_y_considerar_entrada_multilínea" title="es/Guía_JavaScript_1.5/Trabajar_con_expresiones_regulares#Ejecutar_una_busqueda_global,_discriminar_mayúsculas_y_minúsculas_y_considerar_entrada_multilínea">Ejecutar una búsqueda global, discriminar mayúsculas y minúsculas y considerar entrada multilínea</a>.</li> -</ul> - -<h2 id="Declaraciones_de_funciones_condicionales"><strong>Declaraciones de funciones condicionales</strong></h2> - -<p>Las funciones ahora pueden ser declaradas dentro de una cláusula if. Véase la página: <a href="/es/Guía_JavaScript_1.5/Definiendo_Funciones" title="es/Guía_JavaScript_1.5/Definiendo_Funciones">Definiendo Funciones</a>.</p> - -<h2 id="Expresiones_funcionales"><strong>Expresiones funcionales</strong></h2> - -<p>Las funciones ahora pueden ser declaradas dentro de una expresión. Véase la página: <a href="/es/Guía_JavaScript_1.5/Definiendo_Funciones" title="es/Guía_JavaScript_1.5/Definiendo_Funciones">Definiendo Funciones</a>.</p> - -<h2 id="Cláusulas_Catch_múltiples"><strong>Cláusulas Catch múltiples</strong></h2> - -<p>Las múltiples cláusulas Catch en una sentencia try...catch son soportadas. Véase la página: <a href="/es/Guía_JavaScript_1.5/Sentencias_de_manejo_de_excepciones/try...catch" title="es/Guía_JavaScript_1.5/Sentencias_de_manejo_de_excepciones/try...catch"><em>El bloque catch</em></a>.</p> - -<h2 id="Obtenedores_y_Modificadores"><strong>Obtenedores y Modificadores</strong></h2> - -<p>Los editores de JavaScript ahora pueden añadir obtenedores {{ mediawiki.external('getters') }} y modificadores {{ mediawiki.external('setters') }} a sus objetos. Esta característica está disponible únicamente en la implementación C de JavaScript. Véase la página: <a href="/es/Guía_JavaScript_1.5/Crear_nuevos_objetos/Definiendo_las_funciones_get_y_set" title="es/Guía_JavaScript_1.5/Crear_nuevos_objetos/Definiendo_las_funciones_get_y_set">Definiendo obtenedores y modificadores</a>.</p> - -<h2 id="Constantes"><strong>Constantes</strong></h2> - -<p>Constantes definidas como sólo de lectura son soportadas. Esta característica está disponible únicamente en la implementación C de JavaScript. Véase la página: <a href="/es/Guía_JavaScript_1.5/Constantes" title="es/Guía_JavaScript_1.5/Constantes">Constantes</a>.</p> diff --git a/files/es/web/javascript/novedades_en_javascript/1.6/index.html b/files/es/web/javascript/novedades_en_javascript/1.6/index.html deleted file mode 100644 index b8393c6b9e..0000000000 --- a/files/es/web/javascript/novedades_en_javascript/1.6/index.html +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Novedades en JavaScript 1.6 -slug: Web/JavaScript/Novedades_en_JavaScript/1.6 -tags: - - E4X - - JavaScript - - Todas_las_Categorías -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.6 ---- -<div>{{jsSidebar("New_in_JS")}}</div> - -<p>JavaScript 1.6 introduce algunas nuevas características: E4X, algunos métodos nuevos <code>Array</code> y Arreglos y Cadenas genéricos.</p> - -<p>JavaScript 1.6 es soportado en <a href="es/Firefox_1.5">Firefox 1.5</a> y posteriores.</p> - -<h3 id="E4X" name="E4X">E4X</h3> - -<p>ECMAScript para XML (<a href="es/E4X">E4X</a>) es una poderosa tecnología para creción y procesamiento de contenido <a href="es/XML">XML</a> dentro de <a href="es/JavaScript">JavaScript</a>. Continuamos mejorando nuestro soporte en E4X , incluyendo adiciones transparentes de integración con el existente <a href="es/DOM">DOM</a>, pero desarrolladores quienes estan construyendo aplicaciones Web basadas en XML pueden beneficiarse con el soporte de E4X en Firefox 1.5.</p> - -<p>Puede seguirse utilizando el estandar de tipo MIME cuando utiliza E4X:</p> - -<pre><script type="text/javascript"> -</pre> - -<p>Sin embargo, la sintaxis de E4X puede entrar en conflicto con la práctica común de poner scripts dentro de comentarios HTML (<code><span class="nowiki"><!--...--></span></code>) para esconderlos de los navegadores antiguos. E4X puede también entrar en conflicto con la práctica más moderna de poner scripts dentro de las secciones XML CDATA (<code><![CDATA{{ mediawiki.external('...') }}]></code>) para permitir que los símbolos "<" y ">" en el script (nótese que esto no se aplica a HTML). Si visualiza errores de sintaxis inexplicables, añada "; e4x=1" al tipo MIME:</p> - -<pre><script type="text/javascript; e4x=1"> -</pre> - -<p>Nótese que los scripts en extensiones siempre tratan los comentarios HTML como literales E4X. Esto es, el "e4x=1" está implícito.</p> - -<h3 id="Extras_de_Arreglos" name="Extras_de_Arreglos">Extras de Arreglos</h3> - -<p>Existen siete nuevos métodos de <code><a href="es/Core_JavaScript_1.5_Reference/Objects/Array">Array</a></code> que pueden ser separados en dos categorías, métodos de localización de items y métodos iterativos. Los métodos de localización de items son:</p> - -<ul> - <li><code><a href="es/Core_JavaScript_1.5_Reference/Objects/Array/indexOf">indexOf()</a></code> - retorna el índice de la primera ocurrencia del item.</li> - <li><code><a href="es/Core_JavaScript_1.5_Reference/Objects/Array/lastIndexOf">lastIndexOf()</a></code> - retorna el índice de la última ocurrencia del item dado.</li> -</ul> - -<p>Los métodos iterativos son:</p> - -<ul> - <li><code><a href="es/Core_JavaScript_1.5_Reference/Objects/Array/every">every()</a></code> - corre una función en cada item en un arreglo y retorna verdadero si la función retorna verdadero en todos los items.</li> - <li><code><a href="es/Core_JavaScript_1.5_Reference/Objects/Array/filter">filter()</a></code> - corre una función en cada item en un arreglo y retorna un arreglo con todos los items para los cuales la función retorna verdadero.</li> - <li><code><a href="es/Core_JavaScript_1.5_Reference/Objects/Array/forEach">forEach()</a></code> - corre una función en cada item en un arreglo.</li> - <li><code><a href="es/Core_JavaScript_1.5_Reference/Objects/Array/map">map()</a></code> - corre una función en cada item del arreglo y retorna los resultados en un arreglo.</li> - <li><code><a href="es/Core_JavaScript_1.5_Reference/Objects/Array/some">some()</a></code> - corre una función en cada item de un arreglo y retorna verdadero si la función retorna verdadero para cualquier item.</li> -</ul> - -<h3 id="Arreglos_y_cadenas_gen.C3.A9ricos" name="Arreglos_y_cadenas_gen.C3.A9ricos">Arreglos y cadenas genéricos</h3> - -<p>Algunas veces le gustaría aplicar métodos de arreglos a las cadenas. Para hacer esto, trate a una cadena como un arreglo de caracteres. Por ejemplo, para chequear que cada caracter en la variable <var>cadena</var> es una letra, podría escribir:</p> - -<pre>function esLetra(caracter) { - return (caracter >= "a" && caracter <= "z"); -} - -if (Array.prototype.every.call(cadena, esLetra)) - alert("La cadena '" + cadena + "' contiene solo letras!"); -</pre> - -<p>Esta notación es demasiado extensa y JavaScript 1.6 introduce un atajo genérico {{ mediawiki.external('generic shorthand') }}:</p> - -<pre>if (Array.every(cadena, isLetter)) - alert("La cadena '" + cadena + "' contiene sólo letras!"); -</pre> - -<p>Similarmente puede fácilmene aplicar métodos de String a cualquier objeto:</p> - -<pre>var número = 15; -alert(String.replace(número, /5/, '2')); -</pre> - -<h3 id="V.C3.A9ase_tambi.C3.A9n" name="V.C3.A9ase_tambi.C3.A9n">Véase también</h3> - -<p>Nuevas características de <a href="es/Novedades_en_JavaScript_1.7">JavaScript 1.7</a> introducidas en <a href="es/Firefox_2">Firefox 2</a>.</p> - -<p> </p> diff --git a/files/es/web/javascript/novedades_en_javascript/1.7/index.html b/files/es/web/javascript/novedades_en_javascript/1.7/index.html deleted file mode 100644 index d783fdb0b0..0000000000 --- a/files/es/web/javascript/novedades_en_javascript/1.7/index.html +++ /dev/null @@ -1,534 +0,0 @@ ---- -title: Novedades en JavaScript 1.7 -slug: Web/JavaScript/Novedades_en_JavaScript/1.7 -tags: - - Guía_de_JavaScript_1.5 - - JavaScript - - Todas_las_Categorías -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.7 ---- -<p>{{jsSidebar("New_in_JS")}}</p> - -<p>JavaScript 1.7 es una actualización del lenguaje que le añade algunas nuevas características, como generadores, iteradores, comprensión de arrays, sentencias <code>let</code> y asignación desestructurada. Evidentemente también incluye todas las características de <a href="es/Novedades_en_JavaScript_1.6">JavaScript 1.6</a>.</p> - -<p>El soporte para JavaScript 1.7 estará disponible a partir de <a href="es/Firefox_2">Firefox 2</a> Beta 1, así como en compilaciones actuales.</p> - -<p>Los ejemplos de código incluidos en este artículo pueden ser probados en la consola JavaScript. Si quieres aprender a construir o utilizar esta consola, lee <a href="es/Introducci%c3%b3n_al_shell_de_JavaScript">Introducción al shell de JavaScript</a>.</p> - -<h2 id="Utilizando_JavaScript_1.7" name="Utilizando_JavaScript_1.7">Utilizando JavaScript 1.7</h2> - -<p>Para usar las nuevas caracteristicas de JavaScript 1.7, es necesario especificar explícitamente el uso de JavaScript 1.7. En HTML o XUL, utiliza:</p> - -<pre class="eval"> <script type="application/javascript;version=1.7"/> -</pre> - -<p>Cuando se utilice el <a href="es/Introducci%c3%b3n_al_shell_de_JavaScript">shell de JavaScript</a>, debes especificar la versión deseada utilizando la función <code>version()</code>:</p> - -<pre class="eval"> version(170); -</pre> - -<h2 id="Generadores_e_iteradores" name="Generadores_e_iteradores">Generadores e iteradores</h2> - -<p>Cuando se desarrolla código que involucra algoritmos iterativos (como iteraciones sobre listas, o cálculos repetitivos sobre el mismo conjunto de datos), con frecuencia hay variables de estado cuyos valores necesitan ser mantenidos durante el proceso. Tradicionalmente se utilizan funciones callback para obtener los valores intermedios de un algoritmo iterativo.</p> - -<h3 id="Generadores" name="Generadores">Generadores</h3> - -<p>Considera este algoritmo iterativo que obtiene los números de la serie Fibonacci:</p> - -<pre>function do_callback(num) { - document.write(num + "<BR>\n"); -} - -function fib() { - var i = 0, j = 1, n = 0; - while (n < 10) { - do_callback(i); - var t = i; - i = j; - j += t; - n++; - } -} - -fib(); -</pre> - -<p>Este código utiliza rutinas callback para realizar las operaciones en cada paso del algoritmo. En este caso, cada numero Fibonacci es impreso en la consola.</p> - -<p>Los generadores e iteradores trabajan juntos para proveer nuevas y mejores formas de hacer esto. Veamos cómo es la rutina de la serie Fibonacci escrita utilizando generadores:</p> - -<pre>function fib() { - var i = 0, j = 1; - while (true) { - yield i; - var t = i; - i = j; - j += t; - } -} - -var g = fib(); -for (var i = 0; i < 10; i++) { - document.write(g.next() + "<BR>\n"); -} -</pre> - -<p>La función que contiene la palabra clave <code>yield</code> es un generador. Cuando es llamada, sus parámetros formales son instanciados a los argumentos actuales, pero su cuerpo no es realmente evaluado, si no que se devuelve un - - <i>generator-iterator</i> - . Cada llamada al método <code>next()</code> del - - <i>generator-iterator</i> - realiza otro paso a través de algoritmo iterativo. El valor de cada paso es el valor especificado por la palabra clave <code>yield</code>. Piensa en <code>yield</code> como la versión - - <i>generator-iterator</i> - de <code>return</code> que delimita la frontera entre cada iteración del algoritmo. Cada vez que se llama a <code>next()</code>, el código del generador continúa a partir de la sentencia que va después de <code>yield</code>.</p> - -<p>Se realiza un ciclo en el generator-iterator llamando repetidamente a su método <code>next()</code> hasta que se consiga la condición deseada. Con este ejemplo se pueden obtener tantos números de Fibonacci como se quiera llamando simplemente a <code>g.next()</code> hasta que conseguir la cantidad de números que se quiera.</p> - -<h5 id="Resumiendo_un_generador_en_un_punto_espec.C3.ADfico" name="Resumiendo_un_generador_en_un_punto_espec.C3.ADfico">Resumiendo un generador en un punto específico</h5> - -<p>Una vez que un generador ha sido iniciado por la invocación de su función <code>next()</code>, puede utilizarse <code>send()</code>, pasando un valor específico que será tratado como el resultado de la última producción. El generador entonces retornará el operando de la subsecuente producción.</p> - -<p>No se puede iniciar un generador en un punto arbitrario; deberá comenzarse con <code>next()</code> antes de poder enviarle {{ mediawiki.external('<code>send()</code>') }} un valor específico.</p> - -<div class="note"><b>Nótese:</b> Como un punto interesante, invocando <code>send(undefined)</code> es equivalente a invocar <code>next()</code>. Sin embargo, iniciando la aparición de un nuevo generador con cualquier otro valor que no sea indefinido {{ mediawiki.external('undefined') }} cuando invoque a <code>send()</code> resultará como una excepción de error de tipo {{ mediawiki.external('<code>TypeError</code> exception') }}.</div> - -<h5 id="Excepciones_en_los_generadores" name="Excepciones_en_los_generadores">Excepciones en los generadores</h5> - -<p>Puede forzar a un generador a lanzar una excepción mediante la invoación de su método <code>throw()</code>, pasándole el valor de la excepción que debe ser lanzada. Esta excepción se lanzará desde el conxtexto actual suspendido del generador, así como si el <code>yield</code> que está actualmente suspendido en lugar del sentencia <code>throw - <i>valor</i> - </code>.</p> - -<p>Si una producción no es encontrada durante el procesamiento de la excepción lanzada, entonces la excepción se propagará ascendentemente hasta la invocación del <code>throw()</code> y subsecuentemente invocará a <code>next()</code> que resulta en el lanzamiento de una <code>StopIteration</code>.</p> - -<h5 id="Cerrando_un_generador" name="Cerrando_un_generador">Cerrando un generador</h5> - -<p>Los generadores poseen el método <code>close()</code> que forza al generador a cerrarse por sí mismo. Los efectos de cerrar un generador son:</p> - -<ol> - <li>Cualquier cláusula <code>finally</code> activa en la función del generador es ejecutada.</li> - <li>Si una cláusula <code>finally</code> lanza cualquier excepción distinta a <code>StopIteration</code>, la excepción es propagada hacia el invocador del método <code>close()</code>.</li> - <li>El generador termina.</li> -</ol> - -<h5 id="Ejemplo_de_un_Generador" name="Ejemplo_de_un_Generador">Ejemplo de un Generador</h5> - -<p>Este código maneja un generador que se producirá cada 100 lazos.</p> - -<pre>var gen = generator(); - -function driveGenerator() { - if (gen.next()) { - window.setTimeout(driveGenerator, 0); - } else { - gen.close(); - } -} - -function generator() { - while (i < something) { - /** stuff **/ - - ++i; - /** 100 loops per yield **/ - if ((i % 100) == 0) { - yield true; - } - } - - yield false; -} -</pre> - -<h3 id="Iteradores" name="Iteradores">Iteradores</h3> - -<p>Un - <i>iterador</i> - es un objeto especial que te permite iterar datos.</p> - -<p>En el uso cotidiano, los objetos iteradores son - <i>invisibles</i> - (no se necesita trabajar con ellos explícitamente) y son usados en <a href="es/Gu%c3%ada_JavaScript_1.5/Sentencias_de_manipulaci%c3%b3n_de_objetos">sentencias <code>for...in</code> y <code>for each...in</code></a> para recorrer de forma natural las claves y/o los valores de los objetos.</p> - -<pre>var objectWithIterator = getObjectSomehow(); - -for (var i in objectWithIterator) -{ - document.write(objectWithIterator[i] + "<BR>\n"); -} -</pre> - -<p>Si se está implementando un objeto iterador personalizado o se necesita manipular directamente un iterador, será preciso conocer antes el método <code>next()</code>, la excepción <code>StopIteration</code> y la propiedad <code>__iterator__</code>.</p> - -<p><span class="comment">traduzco getter como la función get</span> Se puede crear un iterador para un objeto llamando a <code>Iterator( - <i>objectname</i> - )</code>. El iterador para cierto objeto se conoce gracias a la propiedad <code>__iterator__</code> de dicho objeto, la cual implementa predeterminadamente la iteración de acuerdo al modelo convencional de <code>for..in</code> y <code>for each...in</code>. Si se desea utilizar un iterador personalizado, se debería sobreescribir la función <a href="es/Gu%c3%ada_JavaScript_1.5/Crear_nuevos_objetos/Definiendo_las_funciones_get_y_set">get</a> para que <code>__iterator__</code> devuelva una instancia del susodicho iterador. Para obtener el iterador de un objeto en un script se debería de usar <code>Iterator( - <i>obj</i> - )</code> en lugar de acceder directamente a la propiedad <code>__iterator__</code>.</p> - -<p>Una vez se tiene el iterador, se puede buscar fácilmente el siguiente elemento en el objeto llamando su método <code>next()</code>. Cuando no hay más datos se lanza la excepción <code>StopIteration</code>.</p> - -<p>A continuación se muestra un ejemplo simple de manipulación directa de iteradores:</p> - -<pre>var obj = {name:"Jack Bauer", username:"JackB", id:12345, agency:"CTU", region:"Los Angeles"}; - -var it = Iterator(obj); - -try { - while (true) { - document.write(it.next() + "<BR>\n"); - } -} catch (err if err instanceof StopIteration) { - document.write("End of record.<BR>\n"); -} catch (err) { - document.write("Unknown error: " + err.description + "<BR>\n"); -} -</pre> - -<p>La salida de este programa tendrá este aspecto:</p> - -<pre>name,Jack Bauer -username,JackB -id,12345 -agency,CTU -region,Los Angeles -End of record. -</pre> - -<p>Opcionalmente se puede especificar un segundo parámetro durante la creación del iterador, el cual es un valor booleano que indica si sólo se quieren obtener las claves cada vez que se llama al método <code>next()</code> o no. Cambiando <code>var it = Iterator(obj);</code> por <code>var it = Iterator(obj, true);</code> en el ejemplo anterior se obtendría la siguiente salida:</p> - -<pre>name -username -id -agency -region -End of record. -</pre> - -<p>En ambos casos, el orden final en el que los datos son devueltos puede variar dependiendo de la implementación por lo que <b>no se garantiza el orden de los datos</b>.</p> - -<p>Los iteradores son un método útil de recorrer los datos de los objetos, incluyendo objetos que pueden contener datos inesperados. Esto puede ser especialmente útil si se necesitan recuperar datos para los que la aplicación no está preparada.</p> - -<h2 id="Comprensi.C3.B3n_de_arrays" name="Comprensi.C3.B3n_de_arrays">Comprensión de arrays</h2> - -<p>La comprensión de arrays es una forma de utilizar generadores para realizar de manera apropiada potentes inicializaciones de arrays. Por ejemplo:</p> - -<pre class="eval">function range(begin, end) { - for (let i = begin; i < end; ++i) { - yield i; - } -} -</pre> - -<p><code>range()</code> es un generador que devuelve todos los valores entre <tt>begin</tt> y <tt>end</tt>. Una vez definido eso, se puede utilizar así:</p> - -<pre class="eval">var diez_cuadrados = [i * i for (i in range(0, 10))]; -</pre> - -<p>Esto pre-inicializa un nuevo array, <var>diez_cuadrados</var>, para que contenga los cuadrados de los valores del rango <code>0..9</code>.</p> - -<p>Se puede usar cualquier sentencia condicional al inicializar un array. Si lo que se quiere es inicializar un array para que contenta los números pares entre 0 y 20, se puede usar este código.</p> - -<pre class="eval">var pares = [i for (i in range(0, 21)) if (i % 2 == 0)]; -</pre> - -<p>Antes de JavaScript 1.7, lo anterior debería haber sido codificado así:</p> - -<pre>var evens = []; -for (var i=0; i <= 20; i++) { - if (i % 2 == 0) - evens.push(i); -} -</pre> - -<p>La comprensión de arrays no sólo es mucho más compacta sino que de hecho es mucho más fácil de leer una vez que nos hemos familiarizado con el concepto.</p> - -<h4 id="Reglas_de_.C3.A1mbito" name="Reglas_de_.C3.A1mbito">Reglas de ámbito</h4> - -<p>La comprensión de arrays utiliza un bloque implícito en el cual se ubica. Dicho bloque contiene todo el contenido que se halla dentro de los corchetes, además del las declaraciones <code>let</code> implícitas.</p> - -<p><span class="comment">''Add details.''</span></p> - -<h2 id=".C3.81mbito_de_un_bloque_con_let" name=".C3.81mbito_de_un_bloque_con_let">Ámbito de un bloque con <code>let</code></h2> - -<p>Existen varias formas en las que <code>let</code> puede ser usado para manejar el ámbito de un bloque de datos y funciones:</p> - -<ul> - <li>La <b>sentencia <code>let</code></b> proporciona un método de asociar valores con variables, constantes y funciones en el ámbito del bloque, sin afectar a los de las variables que tengan el mismo nombre fuera del bloque.</li> - <li>La <b>expresión <code>let</code></b> permite establecer variables cuyo ámbito está comprendido en una única expresión.</li> - <li>La <b>definición <code>let</code></b> define variables, constantes y funciones cuyo ámbito queda restringido al bloque en el que se han definido. Esta sintaxis es muy parecida a la usada para <code>var</code>.</li> - <li>Además se puede utilizar <code>let</code> para establecer variables que existan sólo dentro del contexto de un bucle <code>for</code>.</li> -</ul> - -<p> </p> - -<h3 id="El_sentencia_let" name="El_sentencia_let">El sentencia <code>let</code></h3> - -<p>La sentencia <code>let</code> proporciona un ámbito local para variables, constantes y funciones. Funciona reservando cero o más variables en el ámbito léxico de un único bloque de código. La validez de la sentencia <code>let</code> finaliza cuando termina el bloque.</p> - -<p>Por ejemplo:</p> - -<pre>var x = 5; -var y = 0; - -let (x = x+10, y = 12) { - document.write(x+y + "<BR>\n"); -} - -document.write(x+y + "<BR>\n"); -</pre> - -<p>tendrá como salida:</p> - -<pre>27 -5 -</pre> - -<p>Las reglas para el bloque de código son las mismas que para cualquier otro bloque de código de JavaScript. Puede tener sus propias variables establecidas usando declaraciones <code>let</code>.</p> - -<div class="note"><b>Nota:</b> Cuando se use la sintaxis de las sentencia <code>let</code>, será necesario incluir los paréntesis. El no incluirlos provocará un error de sintaxis.</div> - -<h4 id="Reglas_de_.C3.A1mbito_2" name="Reglas_de_.C3.A1mbito_2">Reglas de ámbito</h4> - -<p>El ámbito de las variables definidas usando <code>let</code> es el del mismo bloque de <code>let</code>, además de cualquier bloque interno contenido dentro de él, a menos que esos bloques definan variables con el mismo nombre.</p> - -<h3 id="Expresiones_let" name="Expresiones_let">Expresiones <code>let</code></h3> - -<p>Se puede usar <code>let</code> para establecer variables cuyo ámbito comprende sólo una única expresión:</p> - -<pre>var x = 5; -var y = 0; -document.write( let(x = x + 10, y = 12) x+y + "<BR>\n"); -document.write(x+y + "<BR>\n"); -</pre> - -<p>La salida da como resultado:</p> - -<pre>27 -5 -</pre> - -<p>En este caso, el ámbito de las variables <var>x</var> = <code>x+10</code> e <var>y</var> = <code>12</code> es utilizado solamente en la expresión <code>x+y</code></p> - -<h4 id="Reglas_de_.C3.A1mbito_3" name="Reglas_de_.C3.A1mbito_3">Reglas de ámbito</h4> - -<p>Dada la expresión <code>let</code></p> - -<pre class="eval">let (<var>decls</var>) <var>expr</var> -</pre> - -<p>existe un bloque creado implícitamente que comprende el trozo <var>expr</var>.</p> - -<h3 id="Definiciones_let" name="Definiciones_let">Definiciones <code>let</code></h3> - -<p>La palabra clave <code>let</code> puede además ser usada para definir variables, constantes y funciones dentro de un bloque.</p> - -<pre> ** Este código no funciona en FF 2.0 b1. ** -if (x > y) -{ - let const k = 37; - let gamma : int = 12.7 + k; - let i = 10; - let function f(n) { return (n/3)+k; } - return f(gamma) + f(i); -} -</pre> - -<h4 id="Reglas_de_.C3.A1mbito_4" name="Reglas_de_.C3.A1mbito_4">Reglas de ámbito</h4> - -<p>Las variables, funciones y constantes declaradas usando <code>let</code>, <code>let function</code> y <code>let const</code> tienen como ámbito el bloque en el que están definidas, además de cualquier sub-bloque en el que no sean redefinidas. De este modo, <code>let</code> funciona como <code>var</code>.</p> - -<p>En los programas y clases, <code>let</code> no crea propiedades en los objetos y clases globales como hace <code>var</code>. En vez de eso, crea propiedades en un bloque implícito creado para la evaluación de sentencias en dichos contextos. Esto significa esencialmente que <code>let</code> no sobreescribirá las variables previamente definidas usando <code>var</code>. Por ejemplo:</p> - -<pre>** No funciona en FF 2.0 b1. Devuelve "42", no "global". -var x = 'global'; -let x = 42; -document.write(this.x + "<BR>\n"); -</pre> - -<p>La salida mostrada por este código será "global", no "42".</p> - -<p>Un - <i>bloque implícito</i> - es aquel que no está comprendido entre llaves; es creado implícitamente por el motor de JavaScript.</p> - -<p>En las funciones, una sentencia <code>let</code> ejecutada dentro de <code>eval()</code> no crea propiedades en el objeto variable <span class="comment">Esto hay que traducirlo: (activation object or innermost binding rib)</span> como sí hace <code>var</code>. En vez de eso, lo hace en un bloque creado implícitamente para la evaluación de las sentencias del programa. Esto es consecuencia de la forma de trabajar de <code>eval()</code> unido a la anterior regla.</p> - -<p>En otras palabras, cuando se usa <code>eval()</code> para ejecutar código, dicho código es es tratado como un programa independiente el cual tiene su propio bloque implícito alrededor de su código.</p> - -<h3 id=".C3.81mbito_de_variables_con_let_en_bucles_for" name=".C3.81mbito_de_variables_con_let_en_bucles_for">Ámbito de variables con <code>let</code> en bucles <code>for</code></h3> - -<p>Se puede usar la palabra reservada <code>let</code> para declarar variables localmente en el ámbito de un bucle <code>for</code>, al igual que con <code>var</code>.</p> - -<pre>** Add obj ** - var i=0; - for ( let i=i ; i < 10 ; i++ ) - document.write(i + "<BR>\n"); - - for ( let [name,value] in obj ) - document.write("Name: " + name + ", Value: " + value + "<BR>\n"); -</pre> - -<h4 id="Reglas_de_.C3.A1mbito_5" name="Reglas_de_.C3.A1mbito_5">Reglas de ámbito</h4> - -<pre class="eval">for (let <var>expr1</var>; <var>expr2</var>; <var>expr3</var>) <var>sentencia</var> -</pre> - -<p>En este ejemplo, <var>expr2</var>, <var>expr3</var> y <var>sentencia</var> están delimitadas por un bloque implícito que contiene a las variables locales al bloque declaradas por <code>let <var>expr1</var></code>. Esto se demuestra en el primer bucle del ejemplo.</p> - -<pre class="eval">for (<var>expr1</var> in <var>expr2</var>) <var>sentencia</var> -</pre> - -<p>En este caso, existe un bloque implícito que contiene a <var>sentencia</var>. Esto es mostrado en el segundo bucle del ejemplo.</p> - -<h2 id="Asignaci.C3.B3n_desestructurada" name="Asignaci.C3.B3n_desestructurada">Asignación desestructurada</h2> - -<p>La asignación desestructurada hace posible extraer datos desde arrays u objetos utilizando una sintaxis que refleja la construcción de arrays y objetos literales.</p> - -<p>Las expresiones de objetos y arrays literales proporcionan una forma fácil de crear paquetes de datos ad hoc. Una vez creados estos paquetes de datos, pueden ser usados como se quiera. Se pueden devolver incluso desde funciones.</p> - -<p>Una peculiaridad especialmente útil que se puede hacer con la asignación desestructurada es leer una estructura completa desde una única sentencia aunque hay un número de cosas interesantes que se pueden hacer con ella, como muestra la siguiente sección repleta de ejemplos.</p> - -<p>Esta capacidad es similar a las características que presentan lenguajes tales como Perl o Python.</p> - -<h3 id="Ejemplos" name="Ejemplos">Ejemplos</h3> - -<p>La asignación desestructurada se explica mejor con ejemplos por lo que aquí se muestran un par de ellos con fines didáctico.</p> - -<div class="note"><b>Nota:</b> Si tienes ejemplos más interesantes con formas de utilizar la asignación desestructurada, por favor, anímate a añadirlos a esta sección.</div> - -<h4 id="Intercambiando_valores" name="Intercambiando_valores">Intercambiando valores</h4> - -<p>Se puede usar la asignación desestructurada para, por ejemplo, intercambiar valores:</p> - -<pre>var a = 1; -var b = 3; - -[a, b] = [b, a]; -</pre> - -<p>Tras ejecutar este código, <var>b</var> valdrá 1 y <var>a</var> valdrá 3.</p> - -<p>O para rotar valores: (formato de código pobre)</p> - -<pre><body bgcolor = "black"> - -<script type="application/javascript;version=1.7"/> - -var a = 'o'; -var b = "<font color = 'green'>o</font>"; -var c = 'o'; -var d = 'o'; -var e = 'o'; -var f = "<font color = 'blue'>o</font>"; -var g = 'o'; -var h = 'o'; - -for (lp=0;lp<40;lp++) - {[a, b, c, d, e, f, g, h] = [b, c, d, e, f, g, h, a]; - document.write(a+''+b+''+c+''+d+''+e+''+f+''+g+''+h+''+"<br />");} -</script> -</pre> - -<p>Después de ejecutar este código, se mostrará un espectáculo de colores gracias a la rotación de las variables.</p> - -<h4 id="Devolviendo_m.C3.BAltiples_valores" name="Devolviendo_m.C3.BAltiples_valores">Devolviendo múltiples valores</h4> - -<p>Gracias a la asignación desestructurada, las funciones pueden devolver múltiples valores. Dado que las funciones siempre han podido devolver funciones, ésto proporciona una vuelta de tuerca a la flexibilidad.</p> - -<pre>function f() { - return [1, 2]; -} -</pre> - -<p>Como se puede observar, los resultados se devuelven usando una notación parecida a la utilizada con los arrays, con los valores que se quieren devolver encerrados entre corchetes. Así, se puede devolver un número cualquiera de resultados. En el siguiente ejemplo, <code>f()</code> devuelve el valor <code>{{ mediawiki.external('1, 2') }}</code>.</p> - -<pre>var a, b; -[a, b] = f(); -document.write ("A es " + a + " B es " + b + "<BR>\n"); -</pre> - -<p>El comando <code>{{ mediawiki.external('a, b') }} = f()</code> asigna el resultado de la función a las variables ubicadas por orden entre corchetes: <var>a</var> queda establecido a 1 y <var>b</var> a 2.</p> - -<p>También se pueden obtener los valores devueltos como un array:</p> - -<pre>var a = f(); -document.write ("A es " + a); -</pre> - -<p>En este caso, <var>a</var> será un array que contendrá los valores 1 y 2.</p> - -<h4 id="Ignorar_ciertos_valores_devueltos" name="Ignorar_ciertos_valores_devueltos">Ignorar ciertos valores devueltos</h4> - -<p>Se pueden ignorar algunos valores devueltos en los que no se esté interesado:</p> - -<pre>function f() { - return [1, 2, 3]; -} - -var [a, , b] = f(); -document.write ("A is " + a + " B is " + b + "<BR>\n"); -</pre> - -<p>Tras ejecutar este código, <var>a</var> valdrá 1 y <var>b</var>, 3. El valor 2 es ignorado.</p> - -<h4 id="Iteraci.C3.B3n_sobre_objetos" name="Iteraci.C3.B3n_sobre_objetos">Iteración sobre objetos</h4> - -<p>Se puede usar asignación desestructurada para recuperar datos de un objeto.</p> - -<pre>var obj = { nombre: "Bob", puntos: 1.5, edad: 35 }; - -for (let[nombre, valor] in obj) { - document.write ("Nombre: " + nombre + ", Valor: " + valor + "<BR>\n"); -} -</pre> - -<p>Este bucle recorre todos los pares clave/valor del objeto <var>obj</var> y muestra sus nombres y valores. En este caso, la salida será algo así:</p> - -<pre>Nombre: nombre, Valor: Bob -Nombre: puntos, Valor: 1.5 -Nombre: edad, Valor: 35 -</pre> - -<h4 id="Iteraci.C3.B3n_sobre_valores_en_arrays_de_objetos" name="Iteraci.C3.B3n_sobre_valores_en_arrays_de_objetos">Iteración sobre valores en arrays de objetos</h4> - -<p>Se puede iterar un array de objetos, accediendo a los campos que interesen de cada objeto.</p> - -<pre>var personas = [ - { - nombre: "Mike Smith", - familia: { - madre: "Jane Smith", - padre: "Harry Smith", - hermana: "Samantha Smith" - }, - edad: 35 - }, - { - nombre: "Tom Jones", - familia: { - madre: "Norah Jones", - padre: "Richard Jones", - hermano: "Howard Jones" - }, - edad: 25 - } -]; - -for each (let {nombre: n, familia: { padre: f } } in personas) { - document.write ("Nombre: " + n + ", Padre: " + f + "<BR>\n"); -} -</pre> - -<p>Esto copia el valor del campo <var>nombre</var> a <var>n</var> y el del campo <var>familia.padre</var> a <var>f</var> y luego los muestra por pantalla. Esto se hace para cada objeto del array <var>personas</var>. La salida será algo así:</p> - -<pre>Nombre: Mike Smith, Padre: Harry Smith -Nombre: Tom Jones, Padre: Richard Jones -</pre> - -<p><span class="comment">Categorías</span> <span class="comment">enlaces interwikis</span></p> - -<div class="noinclude"> </div> - -<p>{{ languages( { "en": "en/New_in_JavaScript_1.7", "fr": "fr/Nouveaut\u00e9s_dans_JavaScript_1.7", "it": "it/Novit\u00e0_in_JavaScript_1.7", "ja": "ja/New_in_JavaScript_1.7", "pl": "pl/Nowo\u015bci_w_JavaScript_1.7", "zh-tw": "zh_tw/JavaScript_1.7_\u65b0\u9bae\u4e8b" } ) }}</p> diff --git a/files/es/web/javascript/novedades_en_javascript/1.8.1/index.html b/files/es/web/javascript/novedades_en_javascript/1.8.1/index.html deleted file mode 100644 index 7cd586c2cb..0000000000 --- a/files/es/web/javascript/novedades_en_javascript/1.8.1/index.html +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Nuevo en JavaScript 1.8.1 -slug: Web/JavaScript/Novedades_en_JavaScript/1.8.1 -tags: - - Firefox 3.5 - - JavaScript - - Versiones -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.8.1 ---- -<div>{{jsSidebar("New_in_JS")}}</div> - -<p>El siguiente es un registro de cambios para JavaScript 1.8.1. Esta versión fue incluida en <a href="/es/Firefox/Releases/3.5">Firefox 3.5</a>.</p> - -<p>JavaScript 1.8.1 es una actualización modesta sintácticamente a JavaScript; El principal cambio en esta versión es la adición del compilador <a href="/es/docs/SpiderMonkey/Internals/Tracing_JIT">Tracemonkey Just-In-Time</a>, que mejora el rendimiento.</p> - -<h2 id="Nuevas_características_en_JavaScript_1.8.1">Nuevas características en JavaScript 1.8.1</h2> - -<ul> - <li>{{jsxref("Object.getPrototypeOf()")}}</li> - <li><a href="/es/docs/Web/JavaScript/Guide/Using_native_JSON">Soporte para JSON nativo</a></li> - <li>{{jsxref("String.prototype.trim()")}}</li> - <li>{{jsxref("String.prototype.trimLeft()")}}</li> - <li>{{jsxref("String.prototype.trimRight()")}}</li> -</ul> - -<h2 id="Funcionalidad_modificada_en_JavaScript_1.8.1">Funcionalidad modificada en JavaScript 1.8.1</h2> - -<ul> - <li>La configuración implícita de propiedades en los inicializadores de objeto y matriz ya no ejecuta setters en JavaScript. Esto hace que el comportamiento de establecer los valores de las propiedades sea más predecible.</li> -</ul> diff --git a/files/es/web/javascript/novedades_en_javascript/1.8.5/index.html b/files/es/web/javascript/novedades_en_javascript/1.8.5/index.html deleted file mode 100644 index 57761b2971..0000000000 --- a/files/es/web/javascript/novedades_en_javascript/1.8.5/index.html +++ /dev/null @@ -1,151 +0,0 @@ ---- -title: Novedades en JavaScript 1.8.5 -slug: Web/JavaScript/Novedades_en_JavaScript/1.8.5 -tags: - - ECMAScript5 - - Firefox 4 - - JavaScript - - JavaScript 1.8.5 - - JavaScript_version_overviews -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.8.5 ---- -<p>{{jsSidebar("New_in_JS")}}JavaScript 1.8.5 es una versión de JavaScript incluida en Firefox 4.</p> - -<h2 id="Nuevas_Funciones">Nuevas Funciones</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Function</th> - <th scope="col">Description</th> - </tr> - </thead> - <tbody> - <tr> - <td><code><a class="internal" href="/en/JavaScript/Reference/Global_Objects/Object/create" title="En/Core JavaScript 1.5 - Reference/Global Objects/Object/Create">Object.create</a></code></td> - <td>Crea un nuevo objeto con el objeto prototype especificado y sus propiedades. {{ bug("492840") }}</td> - </tr> - <tr> - <td><code><a class="internal" href="/en/JavaScript/Reference/Global_Objects/Object/defineProperty" title="En/Core JavaScript 1.5 Reference/Global - Objects/Object/DefineProperty">Object.defineProperty</a></code></td> - <td>Añade la propiedad nombrada descrita por un descriptor dado a un objeto.</td> - </tr> - <tr> - <td><code><a class="internal" href="/en/JavaScript/Reference/Global_Objects/Object/defineProperties" title="En/Core JavaScript 1.5 Reference/Global - Objects/Object/DefineProperties">Object.defineProperties</a></code></td> - <td>Añade las propiedades descritas por los descriptores dados a un objeto.</td> - </tr> - <tr> - <td><code><a class="internal" href="/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor" title="En/Core JavaScript 1.5 Reference/Global - Objects/Object/GetOwnPropertyDescriptor">Object.getOwnPropertyDescriptor</a></code></td> - <td>Devuelve una propiedad del descriptor para una propiedad nombrada en un objeto. {{ bug("505587") }}</td> - </tr> - <tr> - <td><a href="/en/JavaScript/Reference/Global_Objects/Object/keys" title="en/Core JavaScript - 1.5 Reference/Global Objects/Object/keys"><code>Object.keys</code></a></td> - <td>Devuelve un vector de todas las propiedades enumerables de un objeto.{{ bug("307791") }}</td> - </tr> - <tr> - <td><a href="/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames" title="en/Core - JavaScript 1.5 Reference/Global Objects/Object/getOwnPropertyNames"><code>Object.getOwnPropertyNames </code></a></td> - <td>Devuelve un vector de todas las propiedades enumerables y no-enumerables de un objeto. {{ bug("518663") }}</td> - </tr> - <tr> - <td><a href="/en/JavaScript/Reference/Global_Objects/Object/preventExtensions" title="en/Core - JavaScript 1.5 Reference/Global Objects/Object/preventExtensions"><code>Object.preventExtensions</code></a></td> - <td>Evita cualquier extensión de un objeto. {{ bug("492849") }}</td> - </tr> - <tr> - <td><a href="/en/JavaScript/Reference/Global_Objects/Object/isExtensible" title="en/Core - JavaScript 1.5 Reference/Global Objects/Object/isExtensible"><code>Object.isExtensible</code></a></td> - <td>Determina si la extensión de un objeto está permitida. {{ bug("492849") }}</td> - </tr> - <tr> - <td><a href="/en/JavaScript/Reference/Global_Objects/Object/seal" title="en/Core - JavaScript 1.5 Reference/Global Objects/Object/seal"><code>Object.seal</code></a></td> - <td>Evita otro código proveniente del borrado de las propiedades de un objeto.{{ bug("492845") }}</td> - </tr> - <tr> - <td><a href="/en/JavaScript/Reference/Global_Objects/Object/isSealed" title="en/Core - JavaScript 1.5 Reference/Global Objects/Object/isSealed"><code>Object.isSealed</code></a></td> - <td>Determina si un objeto está sellado. {{ bug("492845") }}</td> - </tr> - <tr> - <td><a href="/en/JavaScript/Reference/Global_Objects/Object/freeze" title="en/Core - JavaScript 1.5 Reference/Global Objects/Object/freezed"><code>Object.freeze</code></a></td> - <td>Congela un objeto: otro código no puede borrar o cambiar ninguna propiedad. {{ bug("492844") }}</td> - </tr> - <tr> - <td><a href="/en/JavaScript/Reference/Global_Objects/Object/isFrozen" title="en/Core - JavaScript 1.5 Reference/Global Objects/Object/isFrozen"><code>Object.isFrozen</code></a></td> - <td>Determina si un objeto ha sido congelado. {{ bug("492844") }}</td> - </tr> - <tr> - <td><a href="/en/JavaScript/Reference/Global_Objects/Array/isArray" title="en/Core JavaScript - 1.5 Reference/Global Objects/Array/isArray"><code>Array.isArray </code></a></td> - <td>Comprueba si una variable es un Array. {{ bug("510537") }}</td> - </tr> - <tr> - <td><a href="/en/JavaScript/Reference/Global_Objects/Date/toJSON" title="en/JavaScript/Reference/Global Objects/Date/toJSON"><code>Date.toJSON</code></a></td> - <td>Devuelve un string en formato JSON a partir de un objeto Date.</td> - </tr> - <tr> - <td><a href="/en/JavaScript/Reference/Global_Objects/Function/bind" title="en/JavaScript/Reference/Global_Objects/Function/bind"><code>Function.prototype.bind</code></a></td> - <td>Crea una nueva función que, cuando es llamada, se llama a esta función en el contexto provisto (con una secuencia de argumentos dados). {{ bug("429507") }}</td> - </tr> - </tbody> -</table> - -<h2 id="Nuevas_características_ECMAScript5">Nuevas características ECMAScript5</h2> - -<ul> - <li>Los operadores <code><a href="/en/JavaScript/Reference/Operators/Special/get" title="en/JavaScript/Reference/Operators/Special Operators/get Operator">get</a></code> y <code><a href="/en/JavaScript/Reference/Operators/Special/set" title="en/JavaScript/Reference/Operators/Special Operators/set Operator">set</a></code> ahora permiten al identificador ser numérico o string. {{ bug("520696") }}</li> - <li><a href="/en/JavaScript/Reference/Global_Objects/Function/apply" title="en/JavaScript/Reference/Global Objects/Function/apply"><code>Function.apply()</code></a> puede aceptar cualquier objeto estilo-array como lista de argumentos, en lugar de solo arrays reales.</li> - <li><a href="/en/JavaScript/Strict_mode" title="en/JavaScript/Strict mode">strict mode soportado</a></li> -</ul> - -<h2 id="Otros_trabajos_de_estandarización">Otros trabajos de estandarización</h2> - -<p>Varias sintaxis no estandar para la definición de getters y setters han sido eliminadas; la sintaxis ECMAScript 5 definida no ha sido cambiada. Todas ellas fueron muy esotéricas y raramente usadas; si ello te afecta, mira <a class="external" href="http://whereswalden.com/2010/04/16/more-spidermonkey-changes-ancient-esoteric-very-rarely-used-syntax-for-creating-getters-and-setters-is-being-removed/" title="http://whereswalden.com/2010/04/16/more-spidermonkey-changes-ancient-esoteric-very-rarely-used-syntax-for-creating-getters-and-setters-is-being-removed/"> este post</a> para más detalles.</p> - -<h2 id="Nuevos_Objetos">Nuevos Objetos</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Objeto</th> - <th scope="col">Descripción</th> - </tr> - </thead> - <tbody> - <tr> - <td><code><a href="/en/JavaScript/Reference/Global_Objects/Proxy" title="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Proxy">Proxy</a></code></td> - <td>Ofrece soporte para la creación de <code>Object</code> y <code>Function</code> proxy que habilitan la meta-programación en JavaScript.</td> - </tr> - </tbody> -</table> - -<h2 id="Cambios_a_objetos_globales">Cambios a objetos globales</h2> - -<dl> - <dt>Soporte ISO 8601 en Date</dt> - <dd>El método <a href="/en/JavaScript/Reference/Global_Objects/Date/parse" title="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/parse"><code>parse()</code></a>&nbspdel objeto <a href="/en/JavaScript/Reference/Global_Objects/Date" title="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date"><code>Date</code></a> ahora soporta strings de fecha en el formato simple ISO 8601.</dd> - <dt>Objetos globales hechos de solo lectura</dt> - <dd>Los objetos <a href="/en/JavaScript/Reference/Global_Objects/NaN" title="en/JavaScript/Reference/Global Objects/NaN"><code>NaN</code></a>, <a href="/en/JavaScript/Reference/Global_Objects/Infinity" title="en/JavaScript/Reference/Global Objects/Infinity"><code>Infinity</code></a>, y <a href="/en/JavaScript/Reference/Global_Objects/undefined" title="en/JavaScript/Reference/Global Objects/undefined"><code>undefined</code></a> han sido hechos de solo lectura, por la especificación ECMAScript 5.</dd> -</dl> - -<h2 id="Cambios_Adicionales">Cambios Adicionales</h2> - -<ul> - <li><a href="/en/JavaScript/Reference/Global_Objects/Object/Parent" title="en/JavaScript/Reference/Global Objects/Object/Parent"><code>obj.__parent__</code></a> y <code>obj.__count__</code> se convierten en obsoletos. Alguna información sobre el por qué: <a class="external" href="http://whereswalden.com/2010/05/07/spidermonkey-change-du-jour-the-special-__parent__-property-has-been-removed/" title="http://whereswalden.com/2010/05/07/spidermonkey-change-du-jour-the-special-__parent__-property-has-been-removed/">SpiderMonkey change du jour: the special __parent__ property has been removed</a> {{ bug("551529") }} & {{ bug("552560") }}</li> - <li>El arrastre de comas no se aceptará más en <a href="/En/Using_native_JSON" title="En/Using native JSON"><code>JSON.parse()</code></a></li> -</ul> - -<h2 id="Cambios_en_el_API_JavaScript_(SpiderMonkey)">Cambios en el API JavaScript (SpiderMonkey)</h2> - -<div class="note"><strong>Nota:</strong> Los Locale callbacks (como se especificó en la estrucutura <a href="/en/JSLocaleCallbacks" title="en/JSLocaleCallbacks">JSLocaleCallbacks</a>) no debe liberar la memoria del buffer que se les pasa; este buffer se controla por la rutina SpiderMonkey.</div> - -<p>La función <a href="/en/SpiderMonkey/JSAPI_Reference/JS_NewString" title="en/SpiderMonkey/JSAPI Reference/JS NewString"><code>JS_NewString()</code></a> fue eliminada en SpiderMonkey 1.8.5. Use <a href="/en/SpiderMonkey/JSAPI_Reference/JS_NewStringCopyN" title="en/SpiderMonkey/JSAPI Reference/JS NewStringCopyN"><code>JS_NewStringCopyN()</code></a> en su lugar.</p> - -<p>{{ languages( { "en":"en/JavaScript/New_in_JavaScript/1.8.5" } ) }}</p> diff --git a/files/es/web/javascript/novedades_en_javascript/1.8/index.html b/files/es/web/javascript/novedades_en_javascript/1.8/index.html deleted file mode 100644 index 6045185e4a..0000000000 --- a/files/es/web/javascript/novedades_en_javascript/1.8/index.html +++ /dev/null @@ -1,150 +0,0 @@ ---- -title: Novedades en JavaScript 1.8 -slug: Web/JavaScript/Novedades_en_JavaScript/1.8 -tags: - - JavaScript - - Todas_las_Categorías - - Visión_general_de_las_versiones_JavaScript -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.8 ---- -<p>{{jsSidebar("New_in_JS")}}JavaScript 1.8 esta planificado para integrarse como parte de Gecko 1.9 (el cual sera incorporado en <a href="es/Firefox_3_para_desarrolladores">Firefox 3</a>). Esta es una actualización menos sustancial que la descrita en <a href="es/Novedades_en_JavaScript_1.7">JavaScript 1.7</a>, pero tiene algunas actualizaciones para comprobar el progreso hacia ECMAScript 4/JavaScript 2. Esta versión incluirá todas las nuevas características especificadas en <a href="es/Novedades_en_JavaScript_1.6">JavaScript 1.6</a> y <a href="es/Novedades_en_JavaScript_1.7">JavaScript 1.7</a>.</p> - -<p>Lee el {{ Bug(380236) }} para estar al día del progreso de desarrollo de JavaScript 1.8.</p> - -<h3 id="Usando_JavaScript_1.8" name="Usando_JavaScript_1.8">Usando JavaScript 1.8</h3> - -<p>Para poder usar algunas de las nuevas características de JavaScript 1.8 en el HTML, usar:</p> - -<pre class="eval"> <script type="application/javascript;version=1.8"> ... su código aquí ... </script> -</pre> - -<p>Cuando uses la <a href="es/Introducci%c3%b3n_al_shell_de_JavaScript">Shell de JavaScript</a>, componentes XPCOM de JavaScript, o elementos <code><script></code> XUL <code><script></code>, se usará automaticamente la última versión de JS (JS1.8 en Mozilla 1.9), lee ({{ Bug(381031) }}, {{ Bug(385159) }}).</p> - -<p>Las características que requieren el uso de las nuevas palabras clave "yield" y "let" requiere que especifique la versión 1.7 o mayor ya que el código existente podría usar estas palabras clave como variables o nombres de función. Las características que no introducen nuevas palabras claves (como el generador de expresiones) pueden ser usadas sin especificar la versión de JavaScript.</p> - -<p> </p> - -<h3 id="Cierres_de_Expresi.C3.B3n" name="Cierres_de_Expresi.C3.B3n">Cierres de Expresión</h3> - -<p>Esta adición es simplemente una manera más simplificada de escribir funciones sencillas, dándole al lenguaje algo similar al típico <a class="external" href="http://es.wikipedia.org/wiki/C%C3%A1lculo_lambda#C.C3.A1lculo_lambda_y_los_lenguajes_de_programaci.C3.B3n">cálculo Lambda</a>.</p> - -<p><a href="es/Novedades_en_JavaScript_1.7">JavaScript 1.7</a> y versiones anteriores:</p> - -<pre class="eval"> function(x) { return x * x; } -</pre> - -<p>JavaScript 1.8:</p> - -<pre class="eval"> function(x) x * x -</pre> - -<p>Esta sintaxis te permite dejar fuera las llaves y las declaraciones 'return' - haciéndolas implícitas. No hay beneficio adicional en escribir código de esta manera, sino que el único es tener un código prácticamente mas corto.</p> - -<p><br> - <strong>Ejemplos:</strong></p> - -<p>Una manera simplificada para vincular event listeners:</p> - -<pre class="eval"> document.addEventListener("click", function() false, true); -</pre> - -<p>Usando esta notación con algunas de las funciones desde <a href="es/Novedades_en_JavaScript_1.6">JavaScript 1.6</a>:</p> - -<pre class="eval"> elems.some(function(elem) elem.type == "text"); -</pre> - -<p> </p> - -<h3 id="Generador_de_Expresiones" name="Generador_de_Expresiones">Generador de Expresiones</h3> - -<p>Esta adición te permite simplemente crear generadores (los cuales fueron introducidos en <a href="es/Novedades_en_JavaScript_1.7">JavaScript 1.7</a>). Típicamente debería crear una función personalizada la cual podría tener un impacto sobre esta, pero esta adición le permite usar <a href="es/Novedades_en_JavaScript_1.7#Comprensi.C3.B3n_de_arrays">sintaxis de comprensión de arrays</a> para crear una declaración de generador idéntica.</p> - -<p><br> - En <a href="es/Novedades_en_JavaScript_1.7">JavaScript 1.7</a>, podrías escribir algo como lo siguiente para crear un generador personalizado para un objeto:</p> - -<pre class="eval"> function add3(obj) { - for ( let i in obj ) - yield i + 3; - } - - let it = add3(someObj); - try { - while (true) { - document.write(it.next() + "<br>\n"); - } - } catch (err if err instanceof StopIteration) { - document.write("End of record.<br>\n"); - } -</pre> - -<p>En JavaScript 1.8, puedes eludir esto creando una función para un generador personalizado usando una expresión del generador:</p> - -<pre class="eval"> let it = (i + 3 for (i in someObj)); - try { - while (true) { - document.write(it.next() + "<br>\n"); - } - } catch (err if err instanceof StopIteration) { - document.write("End of record.<br>\n"); - } -</pre> - -<p><br> - Las expresiones del generador también pueden ser pasadas, como valores, a una función. Esto es particularmente notable ya que los generadores no son ejecutados hasta que sean absolutamente necesarios (no como una situación de comprensión de arrays típica, donde los arrays son construidos antes de tiempo ). Un ejemplo de la diferencia puede verse aquí:</p> - -<p><br> - Usando JavaScript 1.7 Comprensión de Arrays</p> - -<pre class="eval"> handleResults([ i for ( i in obj ) if ( i > 3 ) ]); - - function handleResults( results ) { - for ( let i in results ) - // ... - } -</pre> - -<p>Usando JavaScript 1.8 Generador de Expresiones</p> - -<pre class="eval"> handleResults( i for ( i in obj ) if ( i > 3 ) ); - - function handleResults( results ) { - for ( let i in results ) - // ... - } -</pre> - -<p><br> - La diferencia entre los dos ejemplos radica en que usando el generador de expresiones, solo tendría que recorrer sobre la estructura 'obj' una sola vez, en total, en lugar de una vez en la comprensión de la matriz, y de nuevo cuando ocurran iteraciones a través de la misma.</p> - -<h3 id="M.C3.A1s_extras_sobre_Arrays" name="M.C3.A1s_extras_sobre_Arrays">Más extras sobre Arrays</h3> - -<p>Existen dos nuevos métodos de iteracion <code><a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array">Array</a></code> incluidos en JavaScript 1.8, especificamente:</p> - -<ul> - <li><code><a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array/reduce">reduce()</a></code> - ejecuta una función en cada elemento en el array y colecciona los resultados de llamadas previas:</li> - <li><code><a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array/reduceRight">reduceRight()</a></code> - ejecuta una función en cada objeto del array y colecciona los resultados de llamadas previas, pero en orden inverso.</li> -</ul> - -<h3 id="Cambios_en_destructuracion_for..in" name="Cambios_en_destructuracion_for..in">Cambios en destructuracion for..in</h3> - -<p><a href="es/Novedades_en_JavaScript_1.7#Iteraci.C3.B3n_sobre_objetos">Novedades en JavaScript_1.7#Iteración sobre objetos</a> ({{ Bug(366941) }}).</p> - -<h3 id="Cambios_pr.C3.B3ximos" name="Cambios_pr.C3.B3ximos">Cambios próximos</h3> - -<p>Los cambios que se espera que lleguen con JavaScript 1.8 incluyen:</p> - -<ul> - <li>Codificación - Decodificacion en JSON.</li> - <li>Sintaxis slice</li> - <li>Destructuracion generalizada for...in</li> -</ul> - -<h3 id="Tambi.C3.A9n_puedes_ver" name="Tambi.C3.A9n_puedes_ver">También puedes ver</h3> - -<p><a href="es/JavaScript">Portada JavaScript</a></p> - -<p> </p> - -<div class="noinclude"> </div> - -<p>{{ languages( { "en": "en/New_in_JavaScript_1.8", "fr": "fr/Nouveaut\u00e9s_dans_JavaScript_1.8", "ja": "ja/New_in_JavaScript_1.8", "ko": "ko/New_in_JavaScript_1.8", "pl": "pl/Nowo\u015bci_w_JavaScript_1.8", "pt": "pt/Novidades_no_Javascript_1.8" } ) }}</p> diff --git a/files/es/web/javascript/novedades_en_javascript/ecmascript_5_support_in_mozilla/index.html b/files/es/web/javascript/novedades_en_javascript/ecmascript_5_support_in_mozilla/index.html deleted file mode 100644 index c32f0ecd34..0000000000 --- a/files/es/web/javascript/novedades_en_javascript/ecmascript_5_support_in_mozilla/index.html +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: ECMAScript 5 support in Mozilla -slug: Web/JavaScript/Novedades_en_JavaScript/ECMAScript_5_support_in_Mozilla -translation_of: Archive/Web/JavaScript/New_in_JavaScript/ECMAScript_5_support_in_Mozilla ---- -<div>{{jsSidebar("New_in_JS")}}</div> - -<p>ECMAScript 5.1, es una versión antigua del estándar sobre el cuál se basa Javascript, dicha versión fue aprovada en Junio de 2011.</p> - -<p>El motor de JavaScript utilizado en las últimas versiones de los proyectos de Mozilla, incluyendo Firefox y Thunderbird, tienen soporte a todas las características de ECMAScript 5.1. Este artículo cubre las funciones compatibles con diferentes versiones del motor de JavaScript utilizado por Mozilla.</p> - -<h2 id="Características_soportadas">Características soportadas</h2> - -<h3 id="Añadido_en_JavaScript_1.8.5_(Gecko_2_Firefox_4_y_posteriores)">Añadido en JavaScript 1.8.5 (Gecko 2, Firefox 4 y posteriores)</h3> - -<p>Firefox 4 tiene soporte completo a ECMAScript 5, incluyendo el constructor <code>Object.*</code> métodos y el modo estrícto (strict mode.) Lee más en <a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.8.5" title="en/JavaScript/New_in_JavaScript/1.8.5">New in JavaScript 1.8.5</a>.</p> - -<h3 id="Añadido_en_JavaScript_1.8.1_(Gecko_1.9.1_Firefox_3.5)">Añadido en JavaScript 1.8.1 (Gecko 1.9.1, Firefox 3.5)</h3> - -<ul> - <li>Soporte nativo de los objetos <a class="internal" href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON" title="En/Using native JSON">JSON</a>.</li> - <li><code>Posee el método <a class="internal" href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf" title="En/Core JavaScript 1.5 Reference/Global Objects/Object/GetPrototypeOf">Object.getPrototypeOf()</a></code>.</li> - <li><code>El método <a class="internal" href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim" title="En/Core JavaScript 1.5 Reference/Global Objects/String/Trim">String.trim()</a></code>, que elimina todos los espacios vacíos que hayan al principio o al final de un texto.</li> - <li>Gecko 1.9.1.4 actualizó la implementación de <a href="/en-US/docs/Web/JavaScript/Guide/Using_native_JSON#Converting_objects_into_JSON" title="En/Using native JSON#Converting objects into JSON"><code>JSON.stringify()</code></a> para que responda a ECMAScript 5.</li> -</ul> - -<p>Las mejoras dispuestas por ECMAScript 5 se han hecho en el algoritmo de análisis sintáctico que impiden la evaluación de XHTML como código JavaScript en ciertas circunstancias..</p> - -<h3 id="Añadido_en_JavaScript_1.6_(Gecko_1.8_Firefox_1.5)">Añadido en JavaScript 1.6 (Gecko 1.8, Firefox 1.5)</h3> - -<p>Los métodos <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array"><code>Array</code></a> que ofrecen varias mejoras en los métodos que manipulan arreglos (arrays), que han sido parte de Javascript desde la versión <a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.6">1.6</a>, ahora forman parte del estándar ECMAScript 5.</p> - -<h2 id="Más_información">Más información</h2> - -<ul> - <li><a class="external" href="http://www.ecmascript.org/" title="http://www.ecmascript.org/">ECMAScript web site</a></li> - <li><a class="external" href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf" title="http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf">ECMAScript 5.1 specification</a></li> - <li>John Resig's post on <a class="external" href="http://ejohn.org/blog/objectgetprototypeof/" title="http://ejohn.org/blog/objectgetprototypeof/">Object.getPrototypeOf</a></li> - <li>Michael J. Ryan's implementation of <a class="external" href="http://frugalcoder.us/post/2010/01/07/EcmaScript-5s-Date-Extensions.aspx" title="http://frugalcoder.us/post/2010/01/07/EcmaScript-5s-Date-Extensions.aspx">ECMAScript5 Dates in JavaScript</a></li> - <li><a href="http://kangax.github.io/es5-compat-table/" title="http://kangax.github.io/es5-compat-table/">ECMAScript 5 support across browsers</a></li> -</ul> diff --git a/files/es/web/javascript/novedades_en_javascript/ecmascript_6_support_in_mozilla/index.html b/files/es/web/javascript/novedades_en_javascript/ecmascript_6_support_in_mozilla/index.html deleted file mode 100644 index 882207368f..0000000000 --- a/files/es/web/javascript/novedades_en_javascript/ecmascript_6_support_in_mozilla/index.html +++ /dev/null @@ -1,273 +0,0 @@ ---- -title: Soporte de ECMAScript 2015 en Mozilla -slug: Web/JavaScript/Novedades_en_JavaScript/ECMAScript_6_support_in_Mozilla -tags: - - ECMAScript6 - - Firefox - - JavaScript -translation_of: Archive/Web/JavaScript/New_in_JavaScript/ECMAScript_2015_support_in_Mozilla ---- -<div>{{jsSidebar("New_in_JS")}}</div> - -<p>ECMAScript 2015 (ES6) es la sexta edicion de las especificaciones del estandar del lenguaje ECMAScript. Esta versión define el estandar para la implementación de <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript">Javascript</a> en <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey">SpiderMonkey</a>, el motor utilizado en Firefox y otras aplicaciones de Mozilla.</p> - -<p>Con el nombre clave de "ES.next", "Harmony" o "ECMAScript 6", el primer borrador (basado en <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_5_support_in_Mozilla">ECMAScript 5.1</a>) fue publicado el 12 de Julio del 2011 como "ES.next". En Agosto de 2014, el borrador de la especificación ECMAScript 2015 fue detenido y pasó por un período de estabilización y correción de errores. Finalmente, el ECMA-262 Edición 6 fue oficialmente aprobado y publicado como un estándar en Junio 17 de 2015 por la Asamblea General de ECMA. También aparecerá como una norma internacional de la industria ISO/IEC 16262:2016.</p> - -<p>El estándar se puede consultar (y descargar) en los formatos <a href="http://www.ecma-international.org/ecma-262/6.0/index.html">HTML</a> y <a href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf">PDF</a> de manera gratuita desde <a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">ecma-international.org</a>.</p> - -<p>Un canal para la retroalimentación sobre los estandares ECMAScript es <a href="https://mail.mozilla.org/listinfo/es-discuss">es-discuss</a>.</p> - -<h2 id="Biblioteca_estándar">Biblioteca estándar</h2> - -<h3 id="Adiciones_al_objeto_Array">Adiciones al objeto <code>Array</code></h3> - -<ul> - <li>Iteración {{jsxref("Array")}} con {{jsxref("Statements/for...of", "for...of")}} (<a href="/es/Firefox/Releases/13">Firefox 13</a>)</li> - <li>{{jsxref("Array.from()")}} (<a href="/es/Firefox/Releases/32">Firefox 32</a>)</li> - <li>{{jsxref("Array.of()")}} (<a href="/es/Firefox/Releases/25">Firefox 25</a>)</li> - <li>{{jsxref("Array.prototype.fill()")}} (<a href="/es/Firefox/Releases/31">Firefox 31</a>)</li> - <li>{{jsxref("Array.prototype.find()")}}, {{jsxref("Array.prototype.findIndex()")}} (<a href="/es/Firefox/Releases/25">Firefox 25</a>)</li> - <li>{{jsxref("Array.prototype.entries()")}},<br> - {{jsxref("Array.prototype.keys()")}} (<a href="/es/Firefox/Releases/28">Firefox 28</a>),<br> - {{jsxref("Array.prototype.values()")}}</li> - <li>{{jsxref("Array.prototype.copyWithin()")}} (<a href="/es/Firefox/Releases/32">Firefox 32</a>)</li> - <li>{{jsxref("Array.@@species", "get Array[@@species]")}} (<a href="/es/Firefox/Releases/48">Firefox 48</a>)</li> -</ul> - -<h3 id="Nuevos_objetos_Map_y_Set_y_contrapartes_débiles">Nuevos objetos <code>Map</code> y <code>Set</code>, y contrapartes débiles</h3> - -<ul> - <li>{{jsxref("Map")}} (<a href="/es/Firefox/Releases/13">Firefox 13</a>) - - <ul> - <li>Iteración {{jsxref("Map")}} con {{jsxref("Sentencias/for...of", "for...of")}} (<a href="/es/Firefox/Releases/17">Firefox 17</a>)</li> - <li>{{jsxref("Map.prototype.forEach()")}} (<a href="/es/Firefox/Releases/25">Firefox 25</a>)</li> - <li>{{jsxref("Map.prototype.entries()")}} (<a href="/es/Firefox/Releases/20">Firefox 20</a>)</li> - <li>{{jsxref("Map.prototype.keys()")}} (<a href="/es/Firefox/Releases/20">Firefox 20</a>)</li> - <li>{{jsxref("Map.prototype.values()")}}</li> - <li>Argumento del Constructor: <code>new {{jsxref("Map")}}(null)</code> (<a href="/es/Firefox/Releases/37">Firefox 37</a>)</li> - <li>Monkey-patched <code>set()</code> en el Constructor (<a href="/es/Firefox/Releases/37">Firefox 37</a>)</li> - <li>{{jsxref("Map.@@species", "get Map[@@species]")}} (<a href="/es/Firefox/Releases/41">Firefox 41</a>)</li> - </ul> - </li> - <li>{{jsxref("Set")}} (<a href="/es/Firefox/Releases/13">Firefox 13</a>) - <ul> - <li>Iteración {{jsxref("Set")}} con {{jsxref("Sentencias/for...of", "for...of")}} (<a href="/es/Firefox/Releases/17">Firefox 17</a>)</li> - <li>{{jsxref("Set.prototype.forEach()")}} (<a href="/es/Firefox/Releases/25">Firefox 25</a>)</li> - <li>{{jsxref("Set.prototype.entries()")}},<br> - {{jsxref("Set.prototype.keys()")}},<br> - {{jsxref("Set.prototype.values()")}} (<a href="/es/Firefox/Releases/24">Firefox 24</a>)</li> - <li>Argumento del Constructor: <code>new {{jsxref("Set")}}(null)</code> (<a href="/es/Firefox/Releases/37">Firefox 37</a>)</li> - <li>Monkey-patched <code>add()</code> en el Constructor (<a href="/es/Firefox/Releases/37">Firefox 37</a>)</li> - <li>{{jsxref("Set.@@species", "get Set[@@species]")}} (<a href="/es/Firefox/Releases/41">Firefox 41</a>)</li> - </ul> - </li> - <li>{{jsxref("WeakMap")}} (<a href="/es/Firefox/Releases/6">Firefox 6</a>) - <ul> - <li>{{jsxref("WeakMap.clear()")}} (<a href="/es/Firefox/Releases/20">Firefox 20</a>)</li> - <li>Argumento iterable opcional en el constructor {{jsxref("WeakMap")}} (<a href="/es/Firefox/Releases/36">Firefox 36</a>)</li> - <li>Argumento del Constructor: <code>new {{jsxref("WeakMap")}}(null)</code> (<a href="/es/Firefox/Releases/37">Firefox 37</a>)</li> - <li>Monkey-patched <code>set()</code> en el Constructor (<a href="/es/Firefox/Releases/37">Firefox 37</a>)</li> - </ul> - </li> - <li>{{jsxref("WeakSet")}} (<a href="/es/Firefox/Releases/34">Firefox 34</a>) - <ul> - <li>Argumento del Constructor: <code>new {{jsxref("WeakSet")}}(null)</code> (<a href="/es/Firefox/Releases/37">Firefox 37</a>)</li> - <li>Monkey-patched <code>add()</code> en el Constructor (<a href="/es/Firefox/Releases/37">Firefox 37</a>)</li> - </ul> - </li> -</ul> - -<h3 id="Nuevas_funciones_Math">Nuevas funciones <code>Math</code></h3> - -<ul> - <li>{{jsxref("Math.imul()")}} (<a href="/es/Firefox/Releases/20">Firefox 20</a>)</li> - <li>{{jsxref("Math.clz32()")}} (<a href="/es/Firefox/Releases/31">Firefox 31</a>)</li> - <li>{{jsxref("Math.fround()")}} (<a href="/es/Firefox/Releases/26">Firefox 26</a>)</li> - <li>{{jsxref("Math.log10()")}}, {{jsxref("Math.log2()")}}, {{jsxref("Math.log1p()")}}, {{jsxref("Math.expm1()")}}, {{jsxref("Math.cosh()")}}, {{jsxref("Math.sinh()")}}, {{jsxref("Math.tanh()")}}, {{jsxref("Math.acosh()")}}, {{jsxref("Math.asinh()")}}, {{jsxref("Math.atanh()")}}, {{jsxref("Math.hypot()")}}, {{jsxref("Math.trunc()")}}, {{jsxref("Math.sign()")}}, {{jsxref("Math.cbrt()")}} (<a href="/es/Firefox/Releases/25">Firefox 25</a>)</li> -</ul> - -<h3 id="Adiciones_al_objeto_Number">Adiciones al objeto <code>Number</code></h3> - -<ul> - <li>{{jsxref("Number.isNaN()")}} (<a href="/es/Firefox/Releases/16">Firefox 16</a>)</li> - <li>{{jsxref("Number.isFinite()")}} (<a href="/es/Firefox/Releases/16">Firefox 16</a>)</li> - <li>{{jsxref("Number.isInteger()")}} (<a href="/es/Firefox/Releases/16">Firefox 16</a>)</li> - <li>{{jsxref("Number.parseInt()")}} (<a href="/es/Firefox/Releases/25">Firefox 25</a>)</li> - <li>{{jsxref("Number.parseFloat()")}} (<a href="/es/Firefox/Releases/25">Firefox 25</a>)</li> - <li>{{jsxref("Number.EPSILON")}} (<a href="/es/Firefox/Releases/25">Firefox 25</a>)</li> - <li>{{jsxref("Number.MAX_SAFE_INTEGER")}}, {{jsxref("Number.MIN_SAFE_INTEGER")}} (<a href="/es/Firefox/Releases/31">Firefox 31</a>)</li> - <li>{{jsxref("Number.isSafeInteger()")}} (<a href="/es/Firefox/Releases/32">Firefox 32</a>)</li> -</ul> - -<h3 id="Adiciones_al_objeto_Object">Adiciones al objeto <code>Object</code></h3> - -<ul> - <li>{{jsxref("Object.prototype.__proto__")}} ha sido estandarizado</li> - <li>{{jsxref("Object.is()")}} (<a href="/es/Firefox/Releases/22">Firefox 22</a>)</li> - <li>{{jsxref("Object.setPrototypeOf()")}} (<a href="/es/Firefox/Releases/31">Firefox 31</a>)</li> - <li>{{jsxref("Object.assign()")}} (<a href="/es/Firefox/Releases/34">Firefox 34</a>)</li> - <li>{{jsxref("Object.getOwnPropertySymbols()")}} (<a href="/es/Firefox/Releases/33">Firefox 33</a>)</li> -</ul> - -<h3 id="Adiciones_al_objeto_Date">Adiciones al objeto <code>Date</code></h3> - -<ul> - <li>{{jsxref("Date.prototype")}} es un objeto ordinario (<a href="/es/Firefox/Releases/41">Firefox 41</a>)</li> - <li>genérico {{jsxref("Date.prototype.toString")}} (<a href="/es/Firefox/Releases/41">Firefox 41</a>)</li> - <li>{{jsxref("Date.prototype.@@toPrimitive", "Date.prototype[@@toPrimitive]")}} (<a href="/es/Firefox/Releases/44">Firefox 44</a>)</li> -</ul> - -<h3 id="Nuevo_objeto_Promise">Nuevo objeto <code>Promise</code></h3> - -<ul> - <li>{{jsxref("Promise")}} (<a href="/es/Firefox/Releases/24">Firefox 24</a>, habilitado por defecto en <a href="/es/Firefox/Releases/29">Firefox 29</a>)</li> -</ul> - -<h3 id="Nuevo_objeto_Proxy">Nuevo objeto <code>Proxy</code></h3> - -<ul> - <li>{{jsxref("Proxy")}} (<a href="/es/Firefox/Releases/18">Firefox 18</a>)</li> - <li>{{jsxref("Global_Objects/Proxy/handler/preventExtensions", "preventExtensions()")}} trap (<a href="https://developer.mozilla.org/en-US/Firefox/Releases/22">Firefox 22</a>)</li> - <li>{{jsxref("Global_Objects/Proxy/handler/isExtensible", "isExtensible()")}} trap (<a href="/es/Firefox/Releases/31">Firefox 31</a>)</li> - <li>{{jsxref("Global_Objects/Proxy/handler/getPrototypeOf", "getPrototypeOf()")}} and {{jsxref("Global_Objects/Proxy/handler/setPrototypeOf", "setPrototypeOf()")}} traps (<a href="/es/Firefox/Releases/49">Firefox 49</a>)</li> -</ul> - -<h3 id="Nuevo_objeto_Reflect">Nuevo objeto <code>Reflect</code> </h3> - -<ul> - <li>{{jsxref("Reflect")}} (<a href="/es/Firefox/Releases/42">Firefox 42</a>)</li> -</ul> - -<h3 id="Adiciones_al_objeto_RegExp">Adiciones al objeto <code>RegExp</code></h3> - -<ul> - <li>{{jsxref("RegExp")}} sticky (y) flag (<a href="/es/Firefox/Releases/38">Firefox 38</a>)</li> - <li>{{jsxref("RegExp")}} unicode (u) flag (<a href="/es/Firefox/Releases/46">Firefox 46</a>)</li> - <li>generic {{jsxref("RegExp.prototype.toString")}} (<a href="/es/Firefox/Releases/39">Firefox 39</a>)</li> - <li>{{jsxref("RegExp.prototype.@@match()", "RegExp.prototype[@@match]()")}} (<a href="/es/Firefox/Releases/49">Firefox 49</a>)</li> - <li>{{jsxref("RegExp.prototype.@@replace()", "RegExp.prototype[@@replace]()")}} (<a href="/es/Firefox/Releases/49">Firefox 49</a>)</li> - <li>{{jsxref("RegExp.prototype.@@search()", "RegExp.prototype[@@search]()")}} (<a href="/es/Firefox/Releases/49">Firefox 49</a>)</li> - <li>{{jsxref("RegExp.prototype.@@split()", "RegExp.prototype[@@split]()")}} (<a href="/es/Firefox/Releases/49">Firefox 49</a>)</li> - <li>{{jsxref("RegExp.@@species", "get RegExp[@@species]")}} (<a href="/es/Firefox/Releases/49">Firefox 49</a>)</li> -</ul> - -<h3 id="Adiciones_al_objeto_String">Adiciones al objeto <code>String</code></h3> - -<ul> - <li>{{jsxref("String.fromCodePoint()")}} (<a href="/es/Firefox/Releases/29">Firefox 29</a>)</li> - <li>{{jsxref("String.prototype.codePointAt()")}} (<a href="/es/Firefox/Releases/29">Firefox 29</a>)</li> - <li>{{jsxref("String.prototype.startsWith()")}}, {{jsxref("String.prototype.endsWith()")}} (<a href="/es/Firefox/Releases/17">Firefox 17</a>)</li> - <li>{{jsxref("String.prototype.includes()")}} (<a href="/es/Firefox/Releases/40">Firefox 40</a>)(anteriormente <code>String.prototype.contains()</code> (<a href="/es/Firefox/Releases/17">Firefox 17</a>))</li> - <li>{{jsxref("String.prototype.repeat()")}} (<a href="/es/Firefox/Releases/24">Firefox 24</a>)</li> - <li>{{jsxref("String.prototype.normalize()")}} (<a href="/es/Firefox/Releases/31">Firefox 31</a>)</li> - <li>{{jsxref("String.raw()")}} (<a href="/es/Firefox/Releases/34">Firefox 34</a>)</li> - <li><a href="/es/docs/Web/JavaScript/Reference/Lexical_grammar#Unicode_code_point_escapes">\u{XXXXXX}</a> Unicode code point escapes (<a href="/es/Firefox/Releases/40">Firefox 40</a>)</li> -</ul> - -<h3 id="Nuevo_objeto_Symbol">Nuevo objeto <code>Symbol</code></h3> - -<ul> - <li>{{jsxref("Symbol")}} (<a href="/es/Firefox/Releases/36">Firefox 36</a>)</li> - <li>{{jsxref("Symbol.iterator")}} (<a href="/es/Firefox/Releases/36">Firefox 36</a>)</li> - <li>{{jsxref("Symbol.for()")}} - registro global de símbolos (<a href="/es/Firefox/Releases/36">Firefox 36</a>)</li> - <li>{{jsxref("Symbol.match")}} (<a href="/es/Firefox/Releases/40">Firefox 40</a>)</li> - <li>{{jsxref("Symbol.species")}} (<a href="/es/Firefox/Releases/41">Firefox 41</a>)</li> - <li>{{jsxref("Symbol.toPrimitive")}} (<a href="/es/Firefox/Releases/44">Firefox 44</a>)</li> - <li>{{jsxref("Symbol.prototype.@@toPrimitive", "Symbol.prototype[@@toPrimitive]")}} (<a href="/es/Firefox/Releases/44">Firefox 44</a>)</li> - <li>{{jsxref("Symbol.replace")}} (<a href="/es/Firefox/Releases/49">Firefox 49</a>)</li> - <li>{{jsxref("Symbol.search")}} (<a href="/es/Firefox/Releases/49">Firefox 49</a>)</li> - <li>{{jsxref("Symbol.split")}} (<a href="/es/Firefox/Releases/49">Firefox 49</a>)</li> - <li>{{jsxref("Symbol.hasInstance")}} (<a href="/es/Firefox/Releases/50">Firefox 50</a>)</li> -</ul> - -<h3 id="Typed_Arrays">Typed Arrays</h3> - -<p>Typed arrays se especifican como parte de ECMAScript 2015 y ya no en <a href="https://www.khronos.org/registry/typedarray/specs/latest/">su propia especificación</a>.</p> - -<ul> - <li>{{jsxref("ArrayBuffer")}}</li> - <li>{{jsxref("ArrayBuffer.@@species", "get ArrayBuffer[@@species]")}} (<a href="/es/Firefox/Releases/48">Firefox 48</a>)</li> - <li>{{jsxref("DataView")}}</li> - <li>{{jsxref("Int8Array")}}</li> - <li>{{jsxref("Uint8Array")}}</li> - <li>{{jsxref("Uint8ClampedArray")}}</li> - <li>{{jsxref("Int16Array")}}</li> - <li>{{jsxref("Uint16Array")}}</li> - <li>{{jsxref("Int32Array")}}</li> - <li>{{jsxref("Uint32Array")}}</li> - <li>{{jsxref("Float32Array")}}</li> - <li>{{jsxref("Float64Array")}}</li> - <li>{{jsxref("TypedArray.@@species", "get %TypedArray%[@@species]")}} (<a href="/es/Firefox/Releases/48">Firefox 48</a>)</li> -</ul> - -<h2 id="Expresiones_y_operadores">Expresiones y operadores</h2> - -<ul> - <li><a href="/es/docs/Web/JavaScript/Reference/Operators/new.target">new.target</a> (<a href="/es/Firefox/Releases/41">Firefox 41</a>)</li> - <li><a href="/es/docs/Web/JavaScript/Reference/Operators/Spread_operator">Operador Spread para arrays</a> (<a href="/es/Firefox/Releases/16">Firefox 16</a>) - <ul> - <li>Utiliza la propiedad <code>Symbol.iterator</code> (<a href="/es/Firefox/Releases/36">Firefox 36</a>)</li> - </ul> - </li> - <li><a href="/es/docs/Web/JavaScript/Reference/Operators/Spread_operator">Operador Spread para llamadas a funciones</a> (<a href="/es/Firefox/Releases/27">Firefox 27</a>) - <ul> - <li>Utiliza la propiedad <code>Symbol.iterator</code> (<a href="/es/Firefox/Releases/36">Firefox 36</a>)</li> - </ul> - </li> - <li>{{jsxref("Statements/const", "const")}} (<a href="/es/docs/Web/JavaScript/New_in_JavaScript/1.5">JS 1.5</a>, Firefox 1.0) (cumple con ES2015 {{bug("950547")}} implementado en Firefox 51)</li> - <li>{{jsxref("Statements/let", "let")}} (<a href="/es/docs/Web/JavaScript/New_in_JavaScript/1.7">JS 1.7</a>, <a href="/es/Firefox/Releases/2">Firefox 2</a>) (en cumplimiento de ES2015 {{bug("950547")}} implementado en Firefox 51)</li> - <li><a href="/es/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment">Destructuring assignment</a> (<a href="/es/docs/Web/JavaScript/New_in_JavaScript/1.7">JS 1.7</a>, <a href="/es/Firefox/Releases/2">Firefox 2</a>) (en cumplimiento de ES2015 {{bug("1055984")}})</li> -</ul> - -<h2 id="Sentencias">Sentencias</h2> - -<ul> - <li>{{jsxref("Statements/for...of", "for...of")}} (<a href="/es/Firefox/Releases/13">Firefox 13</a>) - - <ul> - <li>Funciona en terminos de <code>.iterator()</code> y <code>.next()</code> (<a href="/es/Firefox/Releases/17">Firefox 17</a>)</li> - <li>Usa la propiedad <code>"@@iterator"</code> (<a href="/es/Firefox/Releases/27">Firefox 27</a>)</li> - <li>Usa la propiedad <code>Symbol.iterator</code> (<a href="/es/Firefox/Releases/36">Firefox 36</a>)</li> - </ul> - </li> -</ul> - -<h2 id="Funciones">Funciones</h2> - -<ul> - <li><a href="/es/docs/Web/JavaScript/Reference/Functions_and_function_scope/rest_parameters">Parametros Rest</a> (<a href="/es/Firefox/Releases/15">Firefox 15</a>)</li> - <li><a href="/es/docs/Web/JavaScript/Reference/default_parameters">Parametros por Defecto o predeterminados</a> (<a href="/es/Firefox/Releases/15">Firefox 15</a>) - <ul> - <li>Parámetros sin valores predeterminados después de los parámetros predeterminados (<a href="/es/Firefox/Releases/26">Firefox 26</a>)</li> - <li><a href="/es/docs/Web/JavaScript/Reference/Functions/Default_parameters#Destructured_parameter_with_default_value_assignment" title="Default function parameters allow formal parameters to be initialized with default values if no value or undefined is passed.">Parámetros desestructurados con asignación de valor predeterminada</a> (<a href="/es/Firefox/Releases/41">Firefox 41</a>)</li> - </ul> - </li> - <li><a href="/es/docs/Web/JavaScript/Reference/arrow_functions">Funciones flecha</a> (<a href="/es/Firefox/Releases/22">Firefox 22</a>)</li> - <li>{{jsxref("Statements/function*", "Generator function")}} (<a href="/es/Firefox/Releases/26">Firefox 26</a>) - <ul> - <li>{{jsxref("Operators/yield", "yield")}} (<a href="/es/Firefox/Releases/26">Firefox 26</a>)</li> - <li>{{jsxref("Operators/yield*", "yield*")}} (<a href="/es/Firefox/Releases/27">Firefox 27</a>)</li> - </ul> - </li> - <li>{{jsxref("Functions/arguments/@@iterator", "arguments[@@iterator]")}} (<a href="/es/Firefox/Releases/46">Firefox 46</a>)</li> -</ul> - -<h2 id="Otras_características">Otras características</h2> - -<ul> - <li><a href="/es/docs/Web/JavaScript/Reference/Lexical_grammar#Numeric_literals">Literales numéricos binarios y octales</a> (<a href="/es/Firefox/Releases/25">Firefox 25</a>)</li> - <li><a href="/es/docs/Web/JavaScript/Reference/template_strings">Plantillas de strings</a> (<a href="/es/Firefox/Releases/34">Firefox 34</a>)</li> - <li><a href="/es/docs/Web/JavaScript/Reference/Operators/Object_initializer#Property_definitions">Inicializador de objetos: nombres de propiedades abreviadas</a> (<a href="/es/Firefox/Releases/33">Firefox 33</a>)</li> - <li><a href="/es/docs/Web/JavaScript/Reference/Operators/Object_initializer#Computed_property_names">Inicializador de objetos: nombres de propiedades computados</a> (<a href="/es/Firefox/Releases/34">Firefox 34</a>)</li> - <li><a href="/es/docs/Web/JavaScript/Reference/Operators/Object_initializer#Method_definitions">Inicializador de objetos: nombres de métodos abreviados</a> (<a href="/es/Firefox/Releases/34">Firefox 34</a>)</li> -</ul> - -<h2 id="Ver_también">Ver también</h2> - -<ul> - <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_7_support_in_Mozilla">ECMAScript Next support in Mozilla</a></li> - <li><a href="http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts">ECMAScript 2015 specification drafts</a></li> - <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=694100">Mozilla ES2015 tracking bug</a></li> - <li><a href="http://kangax.github.io/es5-compat-table/es6" title="http://kangax.github.io/es5-compat-table">ECMAScript 2015 support across browsers</a></li> -</ul> diff --git a/files/es/web/javascript/novedades_en_javascript/index.html b/files/es/web/javascript/novedades_en_javascript/index.html deleted file mode 100644 index 9217bc92c6..0000000000 --- a/files/es/web/javascript/novedades_en_javascript/index.html +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: Novedades en JavaScript -slug: Web/JavaScript/Novedades_en_JavaScript -tags: - - JavaScript - - Novedades - - Versiones -translation_of: Archive/Web/JavaScript/New_in_JavaScript ---- -<div>{{jsSidebar("New_in_JS")}}</div> - -<p>Este capítulo contiene información del historial de versiones de JavaScript y su estatus de implementación en aplicaciones basadas en JavaScript de Mozilla/SpiderMonkey (como Firefox)</p> - -<h2 id="Versiones_ECMAScript">Versiones ECMAScript</h2> - -<dl> - <dt><a href="/en-US/docs/Web/JavaScript/Language_Resources">Recursos del Lenguaje</a></dt> - <dd>Aprende más acerca de los estándares ECMAscript en los que el lenguaje JavaScript está basado.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_5_support_in_Mozilla">Soporte ECMAScript 5</a></dt> - <dd>Estatus de la implementación del estandar actual ECMA-262 (Edición 5.1) en aquellos productos y sistemas basados en Mozilla.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla">Soporte ECMAScript 6</a></dt> - <dd>Estatus de la implementación del estandar en proceso de incorporación ECMA-262 (Edición 6) en aquellos productos y sistemas basados en Mozilla.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_7_support_in_Mozilla">Soporte ECMAScript 7</a></dt> - <dd>Estatus de la implementación del estandar próximo ECMA-262 (Edición 7) en aquellos productos y sistemas basados en Mozilla.</dd> -</dl> - -<h2 id="Notas_de_Lanzamiento_de_JavaScript">Notas de Lanzamiento de JavaScript</h2> - -<dl> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/Firefox_JavaScript_changelog">Bitácora de cambios (changelog) de JavaScript en Firefox</a></dt> - <dd>Vea esta bitácora de cambios (changelog) para mayor información de las características y funcionalidades implementadas a partir de Firefox 5.</dd> - <dt>Bitácora de Cambios (Changelog) de JavaScript en Chrome</dt> - <dd>(PENDIENTE) Vea esta bitácora de cambios (changelog) para mayor información de las características y funcionalidades implementadas en Chrome.</dd> -</dl> - -<h2 id="Versiones_JavaScript">Versiones JavaScript</h2> - -<p><strong>Deprecated</strong> ({{deprecated_inline()}}). The explicit versioning and opt-in of language features was Mozilla-specific and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=867609">is in process of being removed</a>. Firefox 4 was the last version which referred to an JavaScript version (1.8.5). With new ECMA standards, JavaScript language features are now often mentioned with their initial definition in ECMA-262 Editions such as Edition 6 (ES6).</p> - -<p>JavaScript was released as version 1.0 in March 1996 in Netscape Navigator 2.0 and Internet Explorer 2.0.</p> - -<dl> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.1">JavaScript 1.1</a></dt> - <dd>Version shipped in Netscape Navigator 3.0. Released on August 19, 1996.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.2">JavaScript 1.2</a></dt> - <dd>Version shipped in Netscape Navigator 4.0-4.05. Released on June 11, 1997.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.3">JavaScript 1.3</a></dt> - <dd>Version shipped in Netscape Navigator 4.06-4.7x. Released on October 19, 1998.<br> - Standardization work to be compliant with ECMA-262 1st and 2nd Edition.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.4">JavaScript 1.4</a></dt> - <dd>Version shipped in Netscape's server side JavaScript. Released in 1999.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.5">JavaScript 1.5</a></dt> - <dd>Version shipped in Netscape Navigator 6.0 and Firefox 1.0. Release on November 14, 2000.<br> - Standardization work to be compliant with ECMA-262 3rd Edition.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.6">JavaScript 1.6</a></dt> - <dd>Version shipped in Firefox 1.5. Released in November 2005.<br> - Includes ECMAScript for XML (E4X), new <code>Array</code> methods plus <code>String</code> and <code>Array</code> generics.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.7">JavaScript 1.7</a></dt> - <dd>Version shipped in Firefox 2. Released in October 2006.<br> - Includes generators, iterators, array comprehensions, <code>let</code> expressions, and destructuring assignment.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.8">JavaScript 1.8</a></dt> - <dd>Version shipped in Firefox 3. Released in June 2008.<br> - Includes expression closures, generator expressions and <code>Array.reduce()</code></dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.8.1">JavaScript 1.8.1</a></dt> - <dd>Version shipped in Firefox 3.5. Released on <span class="st">June 30, 2009.<br> - Includes the TraceMonkey JIT and supports native JSON.</span></dd> - <dt>JavaScript 1.8.2</dt> - <dd>Version shipped in Firefox 3.6. Released June 22, 2009.<br> - Includes only minor changes.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.8.5">JavaScript 1.8.5</a></dt> - <dd>Version shipped in Firefox 4. Released July 27, 2010.<br> - Includes many new features for ECMA-262 Edition 5 compliance.<br> - This is the last JavaScript version.</dd> -</dl> - -<h2 id="Features_still_requiring_version_opt-in">Features still requiring version opt-in</h2> - -<dl> - <dt><a href="/en-US/docs/Web/JavaScript/Reference/Statements/let"><code>let</code> statement</a></dt> - <dd>The <code>let</code> statement requires the JavaScript version 1.7 (or higher) opt-in. See {{bug(932517)}} and {{bug(932513)}}.</dd> -</dl> diff --git a/files/es/web/javascript/referencia/objetos_globales/array/observe/index.html b/files/es/web/javascript/referencia/objetos_globales/array/observe/index.html deleted file mode 100644 index 13f16ef5d0..0000000000 --- a/files/es/web/javascript/referencia/objetos_globales/array/observe/index.html +++ /dev/null @@ -1,133 +0,0 @@ ---- -title: Array.observe() -slug: Web/JavaScript/Referencia/Objetos_globales/Array/observe -tags: - - Método(2) - - Vector -translation_of: Archive/Web/JavaScript/Array.observe ---- -<div>{{JSRef}}</div> - -<p>El método <strong><code>Array.observe()</code></strong> se utiliza para poder observar en forma asincrónica los cambios ocurridos en un vector, similar a {{jsxref("Object.observe()")}} para los objetos. Provee un flujo ordenado por orden de ocurrencia de los cambios ocurridos en el vector. Es equivalente a invocar <code>Object.observe()</code> con la lista de tipos aceptados: <code>["add", "update", "delete", "splice"]</code>.</p> - -<h2 id="Sintaxis">Sintaxis</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>El vector a ser observado.</dd> - <dt><code>callback</code></dt> - <dd>La función invocada con cada cambio dentro del vector con el siguiente argumento: - <dl> - <dt><code>changes</code></dt> - <dd>Un vector de objetos, cada uno representando un cambio. Las propiedades de estos objetos son: - <ul> - <li><strong><code>name</code></strong>: El nombre de la propiedad que ha cambiado.</li> - <li><strong><code>object</code></strong>: El vector modificado, despues de la modificación.</li> - <li><strong><code>type</code></strong>: Una cadena de caracteres indicando el tipo de cambio que ocurrió. Estos tipos son: <code>"add"</code>, <code>"update"</code>, <code>"delete"</code>, o <code>"splice"</code>.</li> - <li><strong><code>oldValue</code></strong>: El valor antes de ser modificado. Solo para los tipos <code>"update"</code> o <code>"delete"</code>.</li> - <li><strong><code>index</code></strong>: La posición del vector en la que ocurrio el cambio. Sólo para el tipo <code>"splice"</code>.</li> - <li><strong><code>removed</code></strong>: Un vector con los elementos borrados. Sólo para el tipo "splice".</li> - <li><strong><code>addedCount</code></strong>: La cantidad de elementos agregados. Sólo para el tipo "splice".</li> - </ul> - </dd> - </dl> - </dd> -</dl> - -<h2 id="Descripción">Descripción</h2> - -<p>La función callback es invocada cada vez que ocurre un cambio en el vector, recibiendo como parámetro, un vector con todos los cambios ocurridos en el orden en que estos fueron realizados.</p> - -<div class="note"> -<p>Changes done via Array methods, such as <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop">Array.prototype.pop()</a> will be reported as <code>"splice"</code> changes. Index assignment changes which do not change the length of the array may be reported as <code>"update"</code> changes.</p> - -<p>Los cambios realizados por medio de los metodos del objeto Array, como <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop">Array.prototype.pop()</a>, seran reportados como del tipo "splice". Los cambios realizados por indice, que no modifican la cantidad de elementos del vector, podrian ser reportados con el tipo "update".</p> -</div> - -<h2 id="Ejemplos">Ejemplos</h2> - -<h3 id="Mostrando_en_consola_los_diferentes_tipos_de_modificaciones">Mostrando en consola los diferentes tipos de modificaciones</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="Especificaciones">Especificaciones</h2> - -<p><a href="https://github.com/arv/ecmascript-object-observe">Strawman proposal for ECMAScript 7</a>.</p> - -<h2 id="Compatibilidad_de_Navegadores">Compatibilidad de 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>{{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>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>{{CompatVersionUnknown}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="Ver_también">Ver también</h2> - -<ul> - <li><a href="//stackoverflow.com/q/29269057/778272">Under what condition would Array.observe's “add” event trigger?</a></li> - <li>{{jsxref("Array.unobserve()")}} {{experimental_inline}}</li> - <li>{{jsxref("Object.observe()")}} {{experimental_inline}}</li> -</ul> diff --git a/files/es/web/javascript/referencia/objetos_globales/array/unobserve/index.html b/files/es/web/javascript/referencia/objetos_globales/array/unobserve/index.html deleted file mode 100644 index 37cf23ef2e..0000000000 --- a/files/es/web/javascript/referencia/objetos_globales/array/unobserve/index.html +++ /dev/null @@ -1,127 +0,0 @@ ---- -title: Array.unobserve() -slug: Web/JavaScript/Referencia/Objetos_globales/Array/unobserve -translation_of: Archive/Web/JavaScript/Array.unobserve ---- -<div>{{JSRef}} {{non-standard_header}}</div> - -<p>El método Array<strong>.unobserve()</strong> se utiliza para eliminar observadores asignados por {{jsxref("Array.observe()")}}.</p> - -<h2 id="Sintaxis">Sintaxis</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>El array para parar la observación.</dd> - <dt><code>callback</code></dt> - <dd>La referencia al observador para dejar de llamar <span id="result_box" lang="es"><span class="hps">cada vez que</span> <span class="hps">se realizan cambios</span> <span class="hps">en el a</span></span>rray <strong>arr</strong>.</dd> -</dl> - -<h2 id="Descripción">Descripción</h2> - -<p><code>Array.unobserve()</code> debe ser llamado después de {{jsxref("Array.observe()")}} con el fin de eliminar un observador de un array.</p> - -<p><span id="result_box" lang="es"><span class="hps">El callback (llamada de retorno)</span> <span class="hps">debe</span> <span class="hps">ser una referencia a</span> <span class="hps">una función y no</span> <span class="hps">una función anónima</span><span>, ya que</span> <span class="hps">esta referencia</span> <span class="hps">se utilizará para</span> borrar <span class="hps">el</span> <span class="hps">observador</span> <span class="hps">anterior.</span> <span class="hps">Es inútil</span> <span class="hps">llamar</span> a </span><strong>Array.unobserve()</strong><span lang="es"><span class="hps"> con</span> <span class="hps">una función anónima</span> <span class="hps">como</span> <span class="hps">callback</span><span>, porque no va a</span> <span class="hps">eliminar ningún </span><span class="hps">observador.</span></span></p> - -<h2 id="Ejemplos">Ejemplos</h2> - -<h3 id="Dejando_de_observar_un_array">Dejando de observar un 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(); -// The callback wasn't called</pre> - -<h3 id="Utilizando_una_función_anónima">Utilizando una función 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 }] -// The callback will always be called -</pre> - -<h2 id="Compatibilidad_de_navegadores">Compatibilidad de navegadores</h2> - -<div>{{CompatibilityTable}}</div> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Característica</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Soporte 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>Característica</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>Soporte 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="Véase_también">Véase también</h2> - -<ul> - <li>{{jsxref("Array.observe()")}} {{non-standard_inline}}</li> - <li>{{jsxref("Object.observe()")}} {{non-standard_inline}}</li> - <li>{{jsxref("Object.unobserve()")}} {{non-standard_inline}}</li> -</ul> diff --git a/files/es/web/javascript/referencia/objetos_globales/function/arity/index.html b/files/es/web/javascript/referencia/objetos_globales/function/arity/index.html deleted file mode 100644 index f79bf24bc4..0000000000 --- a/files/es/web/javascript/referencia/objetos_globales/function/arity/index.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Function.arity -slug: Web/JavaScript/Referencia/Objetos_globales/Function/arity -tags: - - JavaScript - - Obsoleto - - Propiedad - - Sin Implementación - - función -translation_of: Archive/Web/JavaScript/Function.arity ---- -<div>{{JSRef}} {{Obsolete_Header}}</div> - -<p class="note">La propiedad <code><strong>arity</strong></code> regresa el número de argumentos esperados por la función, sin embargo, ya no existe y ha sido remplazada por la propiedad {{jsxref("Function.prototype.length")}} .</p> - -<h2 id="Especificaciones">Especificaciones</h2> - -<p>Implementada en JavaScript 1.2. extraida en JavaScript 1.4.</p> - -<h2 id="Compatibilidad_de_navegadores">Compatibilidad de navegadores</h2> - -<div> - - -<p>{{Compat("javascript.builtins.Function.arity")}}</p> -</div> - -<h2 id="Ver_más">Ver más</h2> - -<ul> - <li>{{jsxref("Function.prototype.length")}}</li> -</ul> diff --git a/files/es/web/javascript/referencia/objetos_globales/function/isgenerator/index.html b/files/es/web/javascript/referencia/objetos_globales/function/isgenerator/index.html deleted file mode 100644 index 7c5dd089d4..0000000000 --- a/files/es/web/javascript/referencia/objetos_globales/function/isgenerator/index.html +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: Function.prototype.isGenerator() -slug: Web/JavaScript/Referencia/Objetos_globales/Function/isGenerator -translation_of: Archive/Web/JavaScript/Function.isGenerator ---- -<div>{{JSRef}} {{non-standard_header}}</div> - -<p>El método <code><strong>isGenerator()</strong></code> determina si una función es un <a href="/es/docs/Web/JavaScript/Guide/Iterators_and_Generators">generador</a>.</p> - -<h2 id="Sintaxis">Sintaxis</h2> - -<pre class="syntaxbox"><code><var>fun</var>.isGenerator()</code></pre> - -<h2 id="Descripción">Descripción</h2> - -<p>El método <code>isGenerator()</code> determina si una función es un <a href="/es/docs/Web/JavaScript/Guide/Iterators_and_Generators">generador</a>. Fue parte de una propuesta del proceso de estandarización "Harmony", pero no fue incluido en la especificación ECMAScript 6.</p> - -<h2 id="Ejemplos">Ejemplos</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="Especificaciones">Especificaciones</h2> - -<p>No es parte de ninguna especificación. Implementado en JavaScript 1.8.6.</p> - -<h2 id="Compatibilidad_con_navegadores">Compatibilidad con navegadores</h2> - -<div>{{CompatibilityTable}}</div> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Característica</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Soporte básico</td> - <td>{{CompatNo}}</td> - <td>{{CompatGeckoDesktop("5.0")}}</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>Característica</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>Soporte básico</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatGeckoMobile("5.0")}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="Ver_también">Ver también</h2> - -<ul> - <li><a href="/es/docs/Web/JavaScript/Guide/Iterators_and_Generators">Iterators and generators</a></li> -</ul> diff --git a/files/es/web/javascript/referencia/objetos_globales/object/count/index.html b/files/es/web/javascript/referencia/objetos_globales/object/count/index.html deleted file mode 100644 index 74b387457d..0000000000 --- a/files/es/web/javascript/referencia/objetos_globales/object/count/index.html +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: Object.prototype.__count__ -slug: Web/JavaScript/Referencia/Objetos_globales/Object/count -translation_of: Archive/Web/JavaScript/Object.count ---- -<div>{{JSRef}} {{obsolete_header("2")}}</div> - -<p>La propiedad <strong><code>__count__</code></strong> es usada para almacenar el número de propiedades enumerables de un objeto, pero esta ha sido eliminada.</p> - -<h2 id="Síntaxis">Síntaxis</h2> - -<pre class="syntaxbox"><code><var>obj</var>.__count__</code></pre> - -<h2 id="Ejemplos">Ejemplos</h2> - -<pre class="brush: js">{ 1: 1 }.__count__ // 1 -[].__count__ // 0 -[1].__count__ // 1 -[1, /* hole */, 2, 3].__count__ // 3 -</pre> - -<h2 id="Especificaciones">Especificaciones</h2> - -<p>No forma parte de ninguna especificación.</p> - -<h2 id="Compatibilidad_en_navegadores">Compatibilidad en 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="Ver_también">Ver también</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] More changes coming to SpiderMonkey: the magical __count__ property is being removed</a></li> -</ul> diff --git a/files/es/web/javascript/referencia/objetos_globales/object/getnotifier/index.html b/files/es/web/javascript/referencia/objetos_globales/object/getnotifier/index.html deleted file mode 100644 index 91521354cc..0000000000 --- a/files/es/web/javascript/referencia/objetos_globales/object/getnotifier/index.html +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: Object.getNotifier() -slug: Web/JavaScript/Referencia/Objetos_globales/Object/getNotifier -tags: - - JavaScript - - Método(2) - - No estándar(2) - - Objeto -translation_of: Archive/Web/JavaScript/Object.getNotifier ---- -<div>{{JSRef}} {{non-standard_header}}</div> - -<p>El método <strong><code>Object.getNotifer()</code></strong> es usado para crear un objeto que permita gatillar un cambio sinteticamente.</p> - -<h2 id="Síntaxis">Síntaxis</h2> - -<pre class="syntaxbox"><code>Object.getNotifier(<em>obj</em>)</code></pre> - -<h3 id="Parametros">Parametros</h3> - -<dl> - <dt><code>obj</code></dt> - <dd>El objeto del cuál se obtiene el notificador.</dd> -</dl> - -<h2 id="Descripción">Descripción</h2> - -<p>El notificador es usado para gatillar cambios sinteticos que serán observados por <code>Object.observe()</code>.</p> - -<h2 id="Especificaciones">Especificaciones</h2> - -<p><a href="https://github.com/arv/ecmascript-object-observe">Strawman proposal specification.</a></p> - -<h2 id="Compatibilidad_de_navegadores">Compatibilidad de navegadores</h2> - -<div>{{CompatibilityTable}}</div> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Caracteristica</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Soporte 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>Caracteristica</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>Soporte 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_también">Ver también</h2> - -<ul> - <li>{{jsxref("Object.observe()")}} {{non-standard_inline}}</li> - <li>{{jsxref("Object.unobserve()")}} {{non-standard_inline}}</li> - <li>{{jsxref("Array.observe()")}} {{non-standard_inline}}</li> -</ul> diff --git a/files/es/web/javascript/referencia/objetos_globales/object/nosuchmethod/index.html b/files/es/web/javascript/referencia/objetos_globales/object/nosuchmethod/index.html deleted file mode 100644 index d7422b2a3d..0000000000 --- a/files/es/web/javascript/referencia/objetos_globales/object/nosuchmethod/index.html +++ /dev/null @@ -1,198 +0,0 @@ ---- -title: Object.prototype.__noSuchMethod__ -slug: Web/JavaScript/Referencia/Objetos_globales/Object/noSuchMethod -tags: - - JavaScript - - No-estándar - - Objeto - - Obsoleto - - Propiedad - - Prototipo -translation_of: Archive/Web/JavaScript/Object.noSuchMethod ---- -<div>{{JSRef}}{{Non-standard_Header}}{{Obsolete_Header("gecko43")}}</div> - -<div>{{JSRef}}{{Non-standard_Header}}{{Obsolete_Header("Safari14")}}</div> - -<p>La <strong><code>__noSuchMethod__</code></strong> se usa para referenciar una función que debe ejecutarse cuando se llama a un método inexistente en un objeto, pero esta función no ya no está disponible.</p> - - - -<p>Mientras <code><strong>__noSuchMethod__</strong></code> a sido eliminado, la especificación ECMAScript 2015 tiene el objeto {{JSxRef("Proxy")}} , el cual puede lograr lo siguiente (y más).</p> - -<h2 id="Sintaxis_de_data">Sintaxis de data</h2> - -<pre>//EXample 2 obj.__noSuchMetod__ = id</pre> - -<p>Otros ejemplos como fun</p> - -<pre class="syntaxbox"><code><var>obj</var>.__noSuchMethod__ = <var>fun</var></code></pre> - -<h3 id="Parameters">Parameters</h3> - -<dl> - <dt><code>fun</code></dt> - <dd>Una función que toma la forma</dd> - <dd> - <pre class="brush: js"><code>function (<var>id</var>, <var>args</var>) { . . . }</code></pre> - - <dl> - <dt><code>id</code></dt> - <dd>El nombre del método inexistente que fue llamado</dd> - <dt><code>args</code></dt> - <dd>Un array de los argumentos pasados al método</dd> - </dl> - </dd> -</dl> - -<h2 id="Descripción">Descripción</h2> - -<p>Por defecto, un intento de llamar a un método que no existe en un objeto tiene como resultado {{JSxRef("TypeError")}}. Este comportamiento puede evitarse definiendo una función en el miembro <code>__noSuchMethod__</code> de ese objeto. La función toma dos argumentos, el primero es el nombre del método intentado y el segundo es un array de los argumentos que fueron pasados en el método de llamada. El segundo argumento es un array real (es decir, hereda a través de la cadena {{JSxRef("Array.prototype")}}) y no el objeto array con el <a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Funciones/arguments">objeto arguments</a>.</p> - -<p>Si no se puede llamar a este método, ya sea <code>undefined</code> por defecto, como si se hubiera eliminado, o si se ha configurado manualmente como no funcional, el motor JavaScript volverá a lanzar <code>TypeError</code>s.</p> - -<h2 id="Esto_es_creado_por_esto">Esto es creado por esto:</h2> - -<p>Director de traductor de grupos:</p> - -<h4 id="Vicente_Oliver">Vicente Oliver</h4> - -<h4 id="titox31">titox31</h4> - - - -<h2 id="Ejemplos">Ejemplos</h2> - -<h3 id="Simple_test_of___noSuchMethod__">Simple test of <code>__noSuchMethod__</code></h3> - -<pre class="brush: js">var o = { - __noSuchMethod__: function(id, args) { - console.log(id, '(' + args.join(', ') + ')'); - } -}; - -o.foo(1, 2, 3); -o.bar(4, 5); -o.baz(); - -// Output -// foo (1, 2, 3) -// bar (4, 5) -// baz () -</pre> - -<h3 id="Using___noSuchMethod___to_simulate_multiple_inheritance">Using <code>__noSuchMethod__</code> to simulate multiple inheritance</h3> - -<p>A continuación se muestra un ejemplo de código que implementa una forma primitiva de la herencia múltiple.</p> - -<pre class="brush: js">// Doesn't work with multiple inheritance objects as parents -function noMethod(name, args) { - var parents = this.__parents_; - - // Go through all parents - for (var i = 0; i < parents.length; i++) { - // If we find a function on the parent, we call it - if (typeof parents[i][name] == 'function') { - return parents[i][name].apply(this, args); - } - } - - // If we get here, the method hasn't been found - throw new TypeError; -} - -// Used to add a parent for multiple inheritance -function addParent(obj, parent) { - // If the object isn't initialized, initialize it - if (!obj.__parents_) { - obj.__parents_ = []; - obj.__noSuchMethod__ = noMethod; - } - - // Add the parent - obj.__parents_.push(parent); -} -</pre> - -<p>Un ejemplo de cómo utilizar esta idea se muestra a continuación.</p> - -<pre class="brush: js">// Example base class 1 -function NamedThing(name) { - this.name = name; -} - -NamedThing.prototype = { - getName: function() { return this.name; }, - setName: function(newName) { this.name = newName; } -} -function String(bash) { - this.close =javaOpenDOM ; -console.info(bash with DOM User with 30pok to 40000km/h to +20years) -; - -} -// Example base class 2 -function AgedThing(age) { - this.age = age; -} - -AgedThing.prototype = { - getAge: function() { return this.age; }, - setAge: function(age) { this.age = age; } -} - -// Child class. inherits from NamedThing and AgedThing -// as well as defining address -function Person(name, age, address){ - addParent(this, NamedThing.prototype); - NamedThing.call(this, name); - addParent(this, AgedThing.prototype); - AgedThing.call(this, age); - this.address = address; -} - -Person.prototype = { - getAddr: function() { return this.address; }, - setAddr: function(addr) { this.address = addr; } -} - -var bob = new Person('bob', 25, 'New York'); - -console.log('getAge is ' + (('getAge' in bob) ? 'in' : 'not in') + ' bob'); -// getAge is not in bob - -console.log("bob's age is: " + bob.getAge()); -// bob's age is: 25 - -console.log('getName is ' + (('getName' in bob) ? 'in' : 'not in') + ' bob'); -// getName is not in bob - -console.log("bob's name is: " + bob.getName()); -// bob's name is: bob - -console.log('getAddr is ' + (('getAddr' in bob) ? 'in' : 'not in') + ' bob'); -// getAddr is in bob - -console.log("bob's address is: " + bob.getAddr()); -// bob's address is: New York -</pre> - -<h2 id="Specifications">Specifications</h2> - -<p>No forma parte de ninguna especificación. Esta característica ha sido eliminada, vea {{bug(683218)}}.</p> - -<blockquote> -<h2 id="Alias_de___noSuchMetod__">Alias de __noSuchMetod__</h2> - -<p>aliasduplicate.lopen_bash</p> - -<p>hamlStyluslopen</p> -</blockquote> - -<h2 id="Browser_compatibility">Browser compatibility</h2> - -<div> -<div class="hidden">La tabla de compatibilidad de esta página se genera a partir de datos estructurados. Si desea contribuir con los datos, visite <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> y envíenos un mensaje.</div> - -<p>{{Compat("javascript.builtins.Object.noSuchMethod")}}</p> -</div> diff --git a/files/es/web/javascript/referencia/objetos_globales/object/observe/index.html b/files/es/web/javascript/referencia/objetos_globales/object/observe/index.html deleted file mode 100644 index 8bf0fd1e5b..0000000000 --- a/files/es/web/javascript/referencia/objetos_globales/object/observe/index.html +++ /dev/null @@ -1,188 +0,0 @@ ---- -title: Object.observe() -slug: Web/JavaScript/Referencia/Objetos_globales/Object/observe -translation_of: Archive/Web/JavaScript/Object.observe ---- -<div>{{JSRef}} {{obsolete_header}}</div> - -<p>El método <strong><code>Object.observe() </code></strong>es usado para observar de forma asíncrona cambios sobre un objeto. Este método transmite información sobre cambios en el objeto, en el orden en que estos ocurren.</p> - -<h2 id="Sintaxis">Sintaxis</h2> - -<pre class="syntaxbox"><code>Object.observe(<var>obj</var>, <var>callback</var>[, <var>acceptList</var>])</code></pre> - -<h3 id="Parámetros">Parámetros</h3> - -<dl> - <dt><code>obj</code></dt> - <dd>El objeto que será observado.</dd> - <dt><code>callback</code></dt> - <dd>La función llamada cada vez que un cambio es realizado. Esta función recibe el siguiente argumento:</dd> - <dd> - <dl> - <dt><code>changes</code></dt> - <dd>Una cadena (<em>Array</em>) de objetos, cada uno de los cuales representa un cambio. Las propiedades de estos objetos son: - <ul> - <li><strong><code>name</code></strong>: El nombre de la propiedad que fue cambiada.</li> - <li><strong><code>object</code></strong>: El objeto con el cambio ya realizado.</li> - <li><strong><code>type</code></strong>: Una cadena (<em>String</em>), indicando el tipo de cambio que ocurrió. Puede ser "<em>add</em>" (añadir), "<em>update" </em>(actualizar) o "<em>delete</em>" (borrar) .</li> - <li><strong><code>oldValue</code></strong>: Sólo válido para los tipos (<em>type</em>) <em>"</em><em>update" </em>o <em>"delete"</em>. Esta propiedad representa el valor antes de que haya ocurrido el cambio.</li> - </ul> - </dd> - </dl> - </dd> - <dt><code>acceptList</code></dt> - <dd>La lista de tipos de cambios que serán observados en el objeto dado, y que serán pasados a la función callback dada. Si este parámetro es omitido, se utilizará de forma predeterminada la cadena (<em>Array</em>) <code>["add", "update", "delete", "reconfigure", "setPrototype", "preventExtensions"]</code>.</dd> -</dl> - -<h2 id="Descripción">Descripción</h2> - -<p>La función <strong><code>callback</code> </strong>es llamada o ejecutada cada vez que un cambio es aplicado sobre el objeto <strong><code>obj</code></strong>. Esta función es ejecutada con una cadena (Array) de todos los cambios sobre el objeto, en el orden en el que estos ocurrieron.</p> - -<h2 id="Ejemplos">Ejemplos</h2> - -<h3 id="Imprimir_en_consola_los_seis_tipos_diferentes_de_cambios_en_un_objeto.">Imprimir en consola los seis tipos diferentes de cambios en un objeto.</h3> - -<pre class="brush: js">var obj = { - foo: 0 -}; - -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}] - -Object.defineProperty(obj, 'foo', {writable: false}); -// [{name: 'foo', object: <obj>, type: 'reconfigure'}] - -Object.setPrototypeOf(obj, {}); -// [{name: '__proto__', object: <obj>, type: 'setPrototype', oldValue: <prototype>}] - -Object.seal(obj); -// [ -// {name: 'foo', object: <obj>, type: 'reconfigure'}, -// {name: 'baz', object: <obj>, type: 'reconfigure'}, -// {object: <obj>, type: 'preventExtensions'} -// ] -</pre> - -<h3 id="Enlace_de_datos">Enlace de datos</h3> - -<pre class="brush: js">// Un modelo de objeto "usuario" -var user = { - id: 0, - name: 'Brendan Eich', - title: 'Mr.' -}; - -// Crear un saludo para el usuario -function updateGreeting() { - user.greeting = 'Hello, ' + user.title + ' ' + user.name + '!'; -} -updateGreeting(); - -Object.observe(user, function(changes) { - changes.forEach(function(change) { - // Cada vez que las propiedades "name" o "title" del objeto - // "user" cambien, se ejecutará la función updateGreeting. - if (change.name === 'name' || change.name === 'title') { - updateGreeting(); - } - }); -}); -</pre> - -<h3 id="Cambio_de_tipo_personalizado">Cambio de tipo personalizado</h3> - -<pre class="brush: js">// A point on a 2D plane -var point = {x: 0, y: 0, distance: 0}; - -function setPosition(pt, x, y) { - // Performing a custom change - Object.getNotifier(pt).performChange('reposition', function() { - var oldDistance = pt.distance; - pt.x = x; - pt.y = y; - pt.distance = Math.sqrt(x * x + y * y); - return {oldDistance: oldDistance}; - }); -} - -Object.observe(point, function(changes) { - console.log('Distance change: ' + (point.distance - changes[0].oldDistance)); -}, ['reposition']); - -setPosition(point, 3, 4); -// Distance change: 5 -</pre> - -<h2 id="Especificación_Técnica_(en_inglés)">Especificación Técnica (en inglés)</h2> - -<p><a href="https://github.com/arv/ecmascript-object-observe">Strawman proposal for ECMAScript 7</a>.</p> - -<h2 id="Compatibilidad_en_navegadores">Compatibilidad en navegadores</h2> - -<div>{{CompatibilityTable}}</div> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Característica</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Soporte 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>Característica</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>Soporte 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="Véase_también">Véase también</h2> - -<ul> - <li>{{jsxref("Object.unobserve()")}} {{experimental_inline}}</li> - <li>{{jsxref("Array.observe()")}} {{experimental_inline}}</li> -</ul> diff --git a/files/es/web/javascript/referencia/objetos_globales/object/parent/index.html b/files/es/web/javascript/referencia/objetos_globales/object/parent/index.html deleted file mode 100644 index 7fcd990395..0000000000 --- a/files/es/web/javascript/referencia/objetos_globales/object/parent/index.html +++ /dev/null @@ -1,244 +0,0 @@ ---- -title: Object.prototype.__parent__ -slug: Web/JavaScript/Referencia/Objetos_globales/Object/Parent -translation_of: Archive/Web/JavaScript/Object.parent ---- -<div>{{JSRef}}{{Non-standard_Header}}{{Obsolete_Header("gecko2")}}</div> - -<p>The <strong><code>__parent__</code></strong> property used to point to an object's context, but it has been removed.</p> - -<p> <img alt="Helvetica" src=" youtube.com"></p> - -<table class="standard-table"> - <tbody> - <tr> - <td> - <table class="standard-table"> - <tbody> - <tr> - <td>JSON</td> - <td>Energy</td> - <td>Pass</td> - <td>Vid errors</td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>M</td> - <td>290 GX Pass Golden</td> - <td>67/500</td> - <td>error 759848</td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>A</td> - <td>190 EXHI Pass</td> - <td>Appears</td> - <td>error 578047</td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>B</td> - <td>not run</td> - <td>not run</td> - <td>error 000000</td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>Y</td> - <td>"Variant Turbo_"</td> - <td>30x35</td> - <td>error A24AB6</td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>D</td> - <td>not</td> - <td>23/56[(89])</td> - <td>(math error) 759709</td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>Z</td> - <td>-7800 Gx 2000-7800</td> - <td>not</td> - <td>error 638298303890</td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>Errors</td> - <td>5876785675</td> - <td>87659679567</td> - <td>5'690'8435978</td> - <td>8767689</td> - <td>8743578495</td> - <td>834257384957</td> - <td>847359873489534897</td> - <td>0945894758597</td> - <td>34879587595934</td> - <td>859084987</td> - <td></td> - </tr> - <tr> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - </tbody> - </table> - - <h2 id="sect1"></h2> - </td> - <td></td> - </tr> - <tr> - <td></td> - <td></td> - </tr> - <tr> - <td></td> - <td></td> - </tr> - </tbody> -</table> - -<div class="blockIndicator warning"> -<p>Advertencia de Traductor: Tengan cuidado con el escaneer. Si la camara trasera de movil o de delante de ordenadores. Limpiela con un trapo. Si aun sigue el problema, llame a al atencion al cliente.</p> -</div> - -<div class="blockIndicator note"> -<p>Nota: sentimos mucho hacerlo en English (US) Intenten traducirlo con Traductor y intentelo de nuevo</p> -</div> - -<h2 id="Syntax">Syntax</h2> - -<h2 class="syntaxbox" id="obj.__parent__"><var>obj</var>.__parent__</h2> - -<h2 id="Description">Description</h2> - -<p>For top-level objects, this is the e.g. window.</p> - -<h2 id="Specifications">Specifications</h2> - -<p>Not part of any specifications.</p> - -<h2 id="Browser_compatibility">Browser compatibility</h2> - -<div> - - -<p>{{Compat("javascript.builtins.Object.parent")}}</p> -</div> - -<h2 id="See_also">See also</h2> - -<ul> - <li><a class="external" href="http://whereswalden.com/2010/05/07/spidermonkey-change-du-jour-the-special-__parent__-property-has-been-removed/">SpiderMonkey change du jour: the special __parent__ property has been removed</a></li> - <li><a href="/en-US/docs/Components.utils.getGlobalForObject">Components.utils.getGlobalForObject</a></li> -</ul> - -<h2 id="See_also_var">See also var</h2> - -<ol> - <li>"htpps://github.rs/accounts"</li> - <li>not</li> -</ol> diff --git a/files/es/web/javascript/referencia/objetos_globales/object/unobserve/index.html b/files/es/web/javascript/referencia/objetos_globales/object/unobserve/index.html deleted file mode 100644 index d500dbde21..0000000000 --- a/files/es/web/javascript/referencia/objetos_globales/object/unobserve/index.html +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: Object.unobserve() -slug: Web/JavaScript/Referencia/Objetos_globales/Object/unobserve -tags: - - JavaScript - - No estandar - - Objeto - - metodo -translation_of: Archive/Web/JavaScript/Object.unobserve ---- -<div>{{JSRef}} {{non-standard_header}}</div> - -<p>El método <strong>Object.unobserve()</strong> es usado para remover observadores establecidos por {{jsxref("Object.observe()")}}.</p> - -<h2 id="Síntaxis">Síntaxis</h2> - -<pre class="syntaxbox"><code>Object.unobserve(<var>obj</var>, <var>callback</var>)</code></pre> - -<h3 id="Parametros">Parametros</h3> - -<dl> - <dt><code>obj</code></dt> - <dd>El objeto a parar de observar.</dd> - <dt><code>callback</code></dt> - <dd>La referencia al observador a parar de llamar cada vez que se hacen cambios sobre el objeto <strong>obj</strong>.</dd> -</dl> - -<h2 id="Descripción">Descripción</h2> - -<p><code>Object.unobserve()</code> debería ser llamado después de {{jsxref("Object.observe()")}} en orden de remover un observador de un objeto.</p> - -<p>La llamada de retorno (<em>callback</em>) debería ser una referencia a una función (asignada o declarada) y no a una función anonima, debido a que ésta referencia será usada para retirar el observador previo. A menos que se llame <strong><code>Object.unobserve()</code> </strong>con una función anonima como llamada de retorno, no se removerá ningún observador.</p> - -<h2 id="Ejemplos">Ejemplos</h2> - -<h3 id="Dejando_de_observar_un_objeto.">Dejando de observar un objeto.</h3> - -<pre class="brush: js">var obj = { - foo: 0, - bar: 1 -}; - -var observer = function(changes) { - console.log(changes); -} - -Object.observe(obj, observer); - -obj.newProperty = 2; -// [{name: 'newProperty', object: <obj>, type: 'add'}] - -Object.unobserve(obj, observer); - -obj.foo = 1; -// La llamada de retorno no fue llamada</pre> - -<h3 id="Utilizando_una_función_anónima">Utilizando una función anónima</h3> - -<pre class="brush: js">var person = { - name : 'Ahmed', - age : 25 -}; - -Object.observe(person, function (changes) { - console.log(changes); -}); - -person.age = 40; -// [{name: 'age', object: <obj>, oldValue: 25, type: 'update'}] - -Object.unobserve(person, function (changes) { - console.log(changes); -}); - -person.age = 63; -// [{name: 'age', object: <obj>, oldValue: 40, type: 'update'}] -// La llamada de retorno siempre será llamada -</pre> - -<h2 id="Compatibilidad_de_navegadores">Compatibilidad de navegadores</h2> - -<div>{{CompatibilityTable}}</div> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Caracteristica</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>Soporte 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>Caracteristica</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>Soporte 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_también">Ver también</h2> - -<ul> - <li>{{jsxref("Object.observe()")}} {{non-standard_inline}}</li> - <li>{{jsxref("Array.observe()")}} {{non-standard_inline}}</li> - <li>{{jsxref("Array.unobserve()")}} {{non-standard_inline}}</li> -</ul> diff --git a/files/es/web/javascript/referencia/objetos_globales/object/unwatch/index.html b/files/es/web/javascript/referencia/objetos_globales/object/unwatch/index.html deleted file mode 100644 index 67f565051c..0000000000 --- a/files/es/web/javascript/referencia/objetos_globales/object/unwatch/index.html +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Object.prototype.unwatch() -slug: Web/JavaScript/Referencia/Objetos_globales/Object/unwatch -tags: - - JavaScript - - Method - - Non-standard - - Object - - Prototype - - Referencia -translation_of: Archive/Web/JavaScript/Object.unwatch ---- -<div> - {{JSRef("Objetos_globales", "Object")}}</div> -<h2 id="Resumen" name="Resumen">Resumen</h2> -<p>Elimina un control establecido con el método {{jsxref("Object.watch", "watch()")}} sobre una propiedad de un objeto.</p> -<h2 id="Sintaxis" name="Sintaxis">Sintaxis</h2> -<p><code>unwatch( - <i> - nombrePropiedad</i> - ) </code></p> -<h3 id="Par.C3.A1metros" name="Par.C3.A1metros">Parámetros</h3> -<dl> - <dt> - <code>nombrePropiedad</code></dt> - <dd> - El nombre de la propiedad del objeto.</dd> -</dl> -<h2 id="Descripci.C3.B3n" name="Descripci.C3.B3n">Descripción</h2> -<p>El depurador de JavaScript tiene funciones similares a las proporcionadas por este método, además de otras opciones de depuración. Para más información acerca del depurador, vea <a href="/es/docs/Venkman">Venkman</a>.</p> -<p>Por defecto, este método se hereda para todos los objetos descendientes de <code>Object</code>.</p> -<h2 id="Ejemplos" name="Ejemplos">Ejemplos</h2> -<p>Vea {{jsxref("Object.watch", "watch()")}}.</p> -<h2 id="Vea_También">Vea También</h2> -<ul> - <li>{{jsxref("Object.watch()")}}</li> -</ul> diff --git a/files/es/web/javascript/referencia/objetos_globales/object/watch/index.html b/files/es/web/javascript/referencia/objetos_globales/object/watch/index.html deleted file mode 100644 index 584a53350b..0000000000 --- a/files/es/web/javascript/referencia/objetos_globales/object/watch/index.html +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: Object.prototype.watch() -slug: Web/JavaScript/Referencia/Objetos_globales/Object/watch -tags: - - JavaScript - - Method - - Non-standard - - Object - - Prototype -translation_of: Archive/Web/JavaScript/Object.watch ---- -<div> - {{JSRef("Objetos_globales", "Object")}}</div> -<h2 id="Resumen" name="Resumen">Resumen</h2> -<p>Controla si se asigna un valor a una propiedad y ejecuta una función cuando esto ocurre.</p> -<h2 id="Sintaxis" name="Sintaxis">Sintaxis</h2> -<p><code>watch( - <i> - propiedad</i> - , - <i> - delegado</i> - ) </code></p> -<h3 id="Par.C3.A1metros" name="Par.C3.A1metros">Parámetros</h3> -<dl> - <dt> - <code>nombrePropiedad</code></dt> - <dd> - Nombre de la propiedad del objeto.</dd> -</dl> -<dl> - <dt> - <code>funcionDelegada</code></dt> - <dd> - Función a llamar.</dd> -</dl> -<h2 id="Descripci.C3.B3n" name="Descripci.C3.B3n">Descripción</h2> -<p>Controla si se asigna una propiedad llamada <code>nombrePropiedad</code> en este objeto, llamando a <code>funcionDelegada(propiedad, valorViejo, valorNuevo)</code> siempre que <code>nombrePropiedad</code> sea asignada y almacene el valor de retorno de esa propiedad. La función encargada de dicho control puede filtrar (o anular) el valor asignado, devolviendo un <code>valorNuevo</code> modificado (o devolviendo <code>valorViejo</code>).</p> -<p>Si elimina una propiedad para la que se ha establecido un control, ese control no desaparece. Si más tarde se vuelve a crear la propiedad, el control volverá a tener efecto.</p> -<p>Para eliminar un control, use el método {{jsxref("Object.prototype.unwatch()")}}. Por defecto, el método <code>watch</code> se hereda para cada uno de los objetos descendientes de {{jsxref("Object")}}.</p> -<p>El depurador JavaScript tiene funciones similares a las que proporciona este método, además de otras opciones de depuración. Para más información sobre el depurador, vea <a href="/es/docs/Venkman">Venkman</a>.</p> -<p>En NES 3.0 y 4.x, <code>funcionDelegada</code> se llama desde las asignaciones del script además del código nativo. En Firefox, <code>funcionDelegada</code> se llama solamente en las asignaciones del script, pero no en el código nativo. Por ejemplo, <code>window.watch('location', miDelegado)</code> no llamará a <code>miDelegado</code> si el usuario hace click sobre un enlace a un ancla dentro del documento actual. Sin embargo, el siguiente código llamará a <code>miDelegado</code>:</p> -<pre class="brush: js"><code>window.location += '#miAncla';</code> -</pre> -<h2 id="Ejemplos" name="Ejemplos">Ejemplos</h2> -<h3 id="Ejemplo:_Usando_watch_y_unwatch" name="Ejemplo:_Usando_watch_y_unwatch">Ejemplo: Usando <code>watch</code> y <code>unwatch</code></h3> -<pre class="brush: js">var objeto = {p:1}; -objeto.watch("p", - function (identificador,valorViejo,valorNuevo) { - document.writeln("objeto." + identificador + " ha cambiado de " - + valorViejo + " a " + valorNuevo); - return valorNuevo; - }); - -objeto.p = 2; -objeto.p = 3; -delete objeto.p; -objeto.p = 4; - -objeto.unwatch('p'); -objeto.p = 5; -</pre> -<p>Este script muestra lo siguiente:</p> -<pre>objeto.p ha cambiado de 1 a 2 -objeto.p ha cambiado de 2 a 3 -objeto.p ha cambiado de undefined a 4 -</pre> -<h3 id="Ejemplo:_Usando_watch_para_validar_las_propiedades_de_un_objeto" name="Ejemplo:_Usando_watch_para_validar_las_propiedades_de_un_objeto">Ejemplo: Usando <code>watch</code> para validar las propiedades de un objeto</h3> -<p>Usted puede usar <code>watch</code> para comprobar cualquier asignación a las propiedades de un objecto. Este ejemplo asegura que cada Persona siempre tiene un nombre válido y una edad entre 0 y 200.</p> -<pre class="brush: js">Persona = function(nombre,edad) { - this.watch("edad", Persona.prototype._esAsignacionValida); - this.watch("nombre",Persona.prototype._esAsignacionValida); - this.nombre=nombre; - this.edad=edad; -}; - -Persona.prototype.toString = function() { return this.nombre + "," + this.edad;}; - -Persona.prototype._esAsignacionValida = function(identificador,valorViejo,valorNuevo) { - if (id=="nombre" && (!valorNuevo|| valorNuevo.length>30)) { throw new RangeError("nombre no válido para " + this); } - if (id=="edad" && (valorNuevo<0 || valorNuevo>200)) { throw new RangeError("edad no válida para " + this ); } - return valorNuevo; -}; - -alejandra = new Persona("Alejandra",29); // --> Alejandra,29 -document.writeln(alejandra); - -try { - alejandra.nombre=""; // --> Error "nombre no válido para Alejandra,29" -} catch (excepcion) { document.writeln(excepcion); } - -try { - alejandra.edad=-4; // --> Error "edad no válida para Alejandra,29" -} catch (excepcion) { document.writeln(excepcion); } -</pre> -<p>Este script muestra lo siguiente:</p> -<pre>Alejandra,29 -RangeError: nombre no válido para Alejandra,29 -RangeError: edad no válida para Alejandra,29 -</pre> -<h2 id="Vea_Tambi.C3.A9n" name="Vea_Tambi.C3.A9n">Vea También</h2> -<ul> - <li>{{jsxref("Object.prototype.unwatch()")}}</li> -</ul> diff --git a/files/es/web/javascript/referencia/operadores/array_comprehensions/index.html b/files/es/web/javascript/referencia/operadores/array_comprehensions/index.html deleted file mode 100644 index d85bfa8b6e..0000000000 --- a/files/es/web/javascript/referencia/operadores/array_comprehensions/index.html +++ /dev/null @@ -1,195 +0,0 @@ ---- -title: Comprensiones de arreglo -slug: Web/JavaScript/Referencia/Operadores/Array_comprehensions -tags: - - JavaScript - - No estandar - - Obsoleto - - Operador - - Referencia -translation_of: Archive/Web/JavaScript/Array_comprehensions ---- -<div>{{jsSidebar("Operators")}}</div> - -<div class="warning"><strong>No es un estándar. ¡No utilizar!</strong><br> -La sintaxis de <em>array comprehensions</em> no es estándar y ha sido removida desde Firefox 58. Para usos futuros, considera utilizar: {{jsxref("Array.prototype.map")}}, {{jsxref("Array.prototype.filter")}}, {{jsxref("Functions/Arrow_functions", "arrow functions", "", 1)}} o {{jsxref("Operators/Spread_operator", "spread syntax", "", 1)}}.</div> - -<p>{{Obsolete_Header(58)}}</p> - -<p>La sintaxis de <strong><em>array comprehension</em></strong> era una expresión JavaScript, la cual permitía crear rápidamente un nuevo arreglo basado en otro existente. Sin embargo, ha sido removida del estándar y de la implementación de Firefox. ¡No lo utilices!</p> - -<h2 id="Sintaxis">Sintaxis</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="Descripción">Descripción</h2> - -<p>Dentro de las comprensiones de arreglo son permitidos estos dos tipos de componentes:</p> - -<ul> - <li>{{jsxref("Statements/for...of", "for...of")}}</li> - <li>{{jsxref("Statements/if...else", "if")}}</li> -</ul> - -<p>La iteración for-of es siempre el primer componente. Son permitidas múltiples iteraciones for-of o sentencias if.</p> - -<h2 id="Ejemplos">Ejemplos</h2> - -<h3 id="Comprensiones_de_arreglo_simples">Comprensiones de arreglo 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="Comprensiones_de_arreglo_con_sentencia_if">Comprensiones de arreglo con sentencia if</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], lo mismo de arriba: -[for (year of years) if (year > 2000 && year < 2010) year]; -// [ 2006] -</pre> - -<h3 id="Comprensiones_de_arreglo_comparado_a_map_y_filter">Comprensiones de arreglo comparado a <code>map</code> y <code>filter</code></h3> - -<p>Una manera sencilla de entender la sintaxis de comprensión de arreglo, es compararla con los métodos de Array {{jsxref("Array.map", "map")}} y {{jsxref("Array.filter", "filter")}}:</p> - -<pre class="brush: js">var numbers = [ 1, 2, 3 ]; - -numbers.map(function (i) { return i * i }); -numbers.map(i => i*i); -[for (i of numbers) i*i ]; -// todos son [ 1, 4, 9 ] - -numbers.filter(function (i) { return i < 3 }); -numbers.filter(i => i < 3); -[for (i of numbers) if (i < 3) i]; -// todos son [ 1, 2 ] -</pre> - -<h3 id="Comprensiones_de_arreglo_con_dos_arreglos">Comprensiones de arreglo con dos arreglos</h3> - -<p>Utilizando dos iteraciones for-of para trabajar con dos arreglos:</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"], lo mismo de arriba: - -[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"]], no lo mismo de arriba: - -[for (i of numbers) [for (j of letters) if (i > 1) if(j > "a") i+j]] -// [[], ["2b", "2c"], ["3b", "3c"]] -</pre> - -<h2 id="Especificaciones">Especificaciones</h2> - -<p>Estuvo inicialmente en el borrador de ECMAScript 6, pero se eliminó en la revisión 27 (Agosto 2014). Por favor ver revisiones mas viejas de ES6 para semánticas de especificación. Se espera que haya una versión actualizada en un nuevo borrador de ES2016 / ES7.</p> - -<h2 id="Compatibilidad_con_navegadores">Compatibilidad con navegadores</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>Soporte básico</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>Soporte básico</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{ CompatGeckoMobile("30") }}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<h2 id="Notas_de_implementación_específicas_de_SpiderMonkey">Notas de implementación específicas de SpiderMonkey</h2> - -<ul> - <li>{{jsxref("Statements/let", "let")}} como identificador no es soportado ya que let solo está disponible actualmente en la versión 1.7 de JS y etiquetas de rutinas XUL.</li> - <li>Desestructurar en comprensiones todavía no está soportado ({{bug(980828)}}).</li> -</ul> - -<h2 id="Diferencias_con_las_comprensiones_de_los_viejos_JS1.7JS1.8">Diferencias con las comprensiones de los viejos JS1.7/JS1.8</h2> - -<ul> - <li>Las comprensiones de ES7 crean un ámbito por nodo "for" en lugar de tomar la comprensión como un todo. - <ul> - <li>Viejo: <code>[()=>x for (x of [0, 1, 2])][1]() // 2</code></li> - <li>Nuevo: <code>[for (x of [0, 1, 2]) ()=>x][1]() // 1, cada iteración crea un enlace fresco para x.</code></li> - <li>Las comprensiones de ES7 empiezan con "for" en lugar de la expresión de asignación. - <ul> - <li>Viejo: <code>[i * 2 for (i of numbers)]</code></li> - <li>Nuevo: <code>[for (i of numbers) i * 2]</code></li> - </ul> - </li> - </ul> - </li> - <li>Las comprensiones de ES7 pueden tener múltiples componentes <code>if</code> y <code>for</code>.</li> - <li>Las comprensiones de ES7 solo trabajan con <code>{{jsxref("Statements/for...of", "for...of")}}</code> y no con iteraciones <code>{{jsxref("Statements/for...in", "for...in")}}</code>.</li> -</ul> - -<h2 id="Ver_también">Ver también</h2> - -<ul> - <li>{{jsxref("Statements/for...of", "for...of")}}</li> - <li>{{jsxref("Operators/Generator_comprehensions", "Generator comprehensions", "" ,1)}}</li> -</ul> diff --git a/files/es/web/javascript/referencia/operadores/expression_closures/index.html b/files/es/web/javascript/referencia/operadores/expression_closures/index.html deleted file mode 100644 index 76fa278728..0000000000 --- a/files/es/web/javascript/referencia/operadores/expression_closures/index.html +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Expression closures -slug: Web/JavaScript/Referencia/Operadores/Expression_closures -tags: - - Funciones - - JavaScript - - Referencia -translation_of: Archive/Web/JavaScript/Expression_closures ---- -<div class="warning"><strong>Non-standard. Do not use!</strong><br> -La sintaxis de cierre de la expresion es una caracteristica obsoleta de SpiderMonkey y <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1083458">sera removida</a>. Par usos futuros, considere usar <a href="/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions">funciones arrow</a>.</div> - -<div>{{jsSidebar("Operators")}}</div> - -<p>Los cierres de expresiones son una sintaxis de la función abreviada para escribir funciones simples.</p> - -<h2 id="Sintasis">Sintasis</h2> - -<pre class="syntaxbox">function [<em>name</em>]([<em>param1</em>[, <em>param2[</em>, ..., <em>paramN</em>]]]) - <em>expression</em> -</pre> - -<h3 id="Parametros">Parametros</h3> - -<dl> - <dt><code>nombre</code></dt> - <dd>El nombre de la función. Puede ser omitido, en este caso la funcion es <em>anonima</em>. El nombre es unicamente local para el cuerpo de la función. </dd> - <dt><code>parametroN</code></dt> - <dd>El nombre de una argumento para pasar a la función. Una funcion puede tener hasta 255 argumentos. </dd> - <dt><font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">expresión</span></font></dt> - <dd>La expresion que comprende el cuerpo de la función. </dd> -</dl> - -<h2 id="Descripción">Descripción</h2> - -<p>Esta adición no es más que una abreviatura para escribir funciones simpres, dando al lenguage algo similar a un tipica <a class="external" href="http://en.wikipedia.org/wiki/Lambda_calculus#Lambda_calculus_and_programming_languages">Notacion Lambda</a>.</p> - -<p>JavaScript 1.7 y superiores:</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 sintasis le permite dejar de lado las llaves y la declaración 'return', haciendolos implicitos. No hay ningun beneficio adicional por escribir código de esta manera, aparte de que sea sintácticamente mas corto.</p> - -<h2 id="Ejemplos">Ejemplos</h2> - -<p>Una abreviatura para binding event listeners:</p> - -<pre class="brush: js"> document.addEventListener('click', function() false, true); -</pre> - -<p>Usando esta notación con algunas de las funciones array desde JavaScript 1.6:</p> - -<pre class="brush: js">elems.some(function(elem) elem.type == 'text'); -</pre> - -<h2 id="Compatibilidad_entre_navegadores">Compatibilidad entre navegadores</h2> - -<div class="hidden">La tabla de compatibilidad en este pagina es generada desde una estructura de datos. Si le gustaria contribuir a la data, por favor valide esto <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> y envienos una solicitud de extracción.</div> - -<p>{{Compat("javascript.operators.expression_closures")}}</p> - -<h2 id="Ver_también">Ver también</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/es/web/javascript/referencia/sentencias/for_each...in/index.html b/files/es/web/javascript/referencia/sentencias/for_each...in/index.html deleted file mode 100644 index bec1303e99..0000000000 --- a/files/es/web/javascript/referencia/sentencias/for_each...in/index.html +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: for each...in -slug: Web/JavaScript/Referencia/Sentencias/for_each...in -tags: - - Deprecated - - E4X - - JavaScript - - Statement -translation_of: Archive/Web/JavaScript/for_each...in ---- -<p>{{jsSidebar("Statements")}} </p> - -<div class="warning"> -<p>La sentencia <code>for each ... in</code> ha quedado obsoleta como parte del estándar ECMA-357 (E4X). El soporte E4X ha sido quitado. Considere usar <code>for .. of</code> en su lugar. (Por favor, referirse al {{bug("791343")}}.)</p> -</div> - -<h2 id="Summary" name="Summary">Resumen</h2> - -<p>Itera una variable especifica por todos los valores de las propiedades del objeto. Para cada propiedad distinta, una sentencia especifica es ejecutada.</p> - -<h2 id="Syntax" name="Syntax">Sintaxis</h2> - -<pre class="syntaxbox">for each (<em>variable</em> in <em>objeto</em>) - <em>sentencia</em> -</pre> - -<dl> - <dt><code>variable</code></dt> - <dd>Variable a iterar sobre los valores de las propiedades, opcionalmente declarado con la palabra reservada <code>var</code>. Esta variable es local a la función, no al bucle.</dd> -</dl> - -<dl> - <dt><code>objeto</code></dt> - <dd>Objeto por el cual las propiedades son iteradas.</dd> -</dl> - -<dl> - <dt><code>sentencia</code></dt> - <dd>Una sentencia a ejecutar para cada propiedad. Para ejecutar multiples sentencias dentro del bucle use una sentencia {{jsxref("Sentencias/block", "block")}} para agrupar esas sentencias.</dd> -</dl> - -<h2 id="Descripción" name="Descripción">Descripción</h2> - -<p>Algunas propiedades integradas no son iteradas. Estas incluyen todos los metodos integrados, p.ej.: el método <code>indexOf</code> de <code>String</code>. Sin embargo, todas las propiedades definidas por el usuario son iteradas.</p> - -<h2 id="Examples" name="Examples">Ejemplos</h2> - -<h3 id="Example_Using_for_each...in" name="Example:_Using_for_each...in">Ejemplo: Uso de <code>for each...in</code></h3> - -<p><strong>Atención:</strong> Nunca usar un bucle como este en arrays. Solamente usar en objetos. Más detalles: {{jsxref("Sentencias/for...in", "for...in")}}.</p> - -<p>El siguiente fragmento de código itera sobre las propiedades de un objeto, calculando su suma:</p> - -<pre class="brush: js">var sum = 0; -var obj = {prop1: 5, prop2: 13, prop3: 8}; -for each (var item in obj) { - sum += item; -} -print(sum); // imprime "26", que es 5+13+8 -</pre> - -<h2 id="See_also" name="See_also">Ver también</h2> - -<ul> - <li>{{jsxref("Sentencias/for...in", "for...in")}} – una sentencia similar que itera sobre los nombres (<em>names</em>) de las propiedades.</li> - <li>{{jsxref("Sentencias/for", "for")}}</li> -</ul> |