diff options
Diffstat (limited to 'files/es/web/javascript/novedades_en_javascript')
12 files changed, 0 insertions, 1701 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> |