From 1109132f09d75da9a28b649c7677bb6ce07c40c0 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:41:45 -0500 Subject: initial commit --- .../reference/errors/bad_octal/index.html | 45 ++++++++ .../reference/errors/caracter_ilegal/index.html | 83 ++++++++++++++ .../errors/deprecated_source_map_pragma/index.html | 57 ++++++++++ .../index.html | 72 ++++++++++++ .../errors/in_operator_no_object/index.html | 71 ++++++++++++ .../es/web/javascript/reference/errors/index.html | 29 +++++ .../errors/indicador_regexp_no-val/index.html | 113 +++++++++++++++++++ .../errors/invalid_array_length/index.html | 78 +++++++++++++ .../reference/errors/invalid_date/index.html | 58 ++++++++++ .../errors/malformed_formal_parameter/index.html | 60 ++++++++++ .../missing_curly_after_property_list/index.html | 47 ++++++++ .../errors/missing_formal_parameter/index.html | 75 +++++++++++++ .../index.html | 51 +++++++++ .../errors/more_arguments_needed/index.html | 51 +++++++++ .../reference/errors/no_variable_name/index.html | 83 ++++++++++++++ .../reference/errors/not_a_codepoint/index.html | 51 +++++++++ .../reference/errors/not_a_function/index.html | 124 +++++++++++++++++++++ .../reference/errors/not_defined/index.html | 67 +++++++++++ .../reference/errors/precision_range/index.html | 96 ++++++++++++++++ .../errors/property_access_denied/index.html | 46 ++++++++ .../reference/errors/stmt_after_return/index.html | 74 ++++++++++++ .../index.html" | 117 +++++++++++++++++++ .../reference/errors/too_much_recursion/index.html | 57 ++++++++++ .../reference/errors/undefined_prop/index.html | 63 +++++++++++ .../reference/errors/unexpected_token/index.html | 50 +++++++++ .../reference/errors/unexpected_type/index.html | 61 ++++++++++ 26 files changed, 1779 insertions(+) create mode 100644 files/es/web/javascript/reference/errors/bad_octal/index.html create mode 100644 files/es/web/javascript/reference/errors/caracter_ilegal/index.html create mode 100644 files/es/web/javascript/reference/errors/deprecated_source_map_pragma/index.html create mode 100644 files/es/web/javascript/reference/errors/falta_puntoycoma_antes_de_declaracion/index.html create mode 100644 files/es/web/javascript/reference/errors/in_operator_no_object/index.html create mode 100644 files/es/web/javascript/reference/errors/index.html create mode 100644 files/es/web/javascript/reference/errors/indicador_regexp_no-val/index.html create mode 100644 files/es/web/javascript/reference/errors/invalid_array_length/index.html create mode 100644 files/es/web/javascript/reference/errors/invalid_date/index.html create mode 100644 files/es/web/javascript/reference/errors/malformed_formal_parameter/index.html create mode 100644 files/es/web/javascript/reference/errors/missing_curly_after_property_list/index.html create mode 100644 files/es/web/javascript/reference/errors/missing_formal_parameter/index.html create mode 100644 files/es/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.html create mode 100644 files/es/web/javascript/reference/errors/more_arguments_needed/index.html create mode 100644 files/es/web/javascript/reference/errors/no_variable_name/index.html create mode 100644 files/es/web/javascript/reference/errors/not_a_codepoint/index.html create mode 100644 files/es/web/javascript/reference/errors/not_a_function/index.html create mode 100644 files/es/web/javascript/reference/errors/not_defined/index.html create mode 100644 files/es/web/javascript/reference/errors/precision_range/index.html create mode 100644 files/es/web/javascript/reference/errors/property_access_denied/index.html create mode 100644 files/es/web/javascript/reference/errors/stmt_after_return/index.html create mode 100644 "files/es/web/javascript/reference/errors/strict_y_par\303\241metros_complejos/index.html" create mode 100644 files/es/web/javascript/reference/errors/too_much_recursion/index.html create mode 100644 files/es/web/javascript/reference/errors/undefined_prop/index.html create mode 100644 files/es/web/javascript/reference/errors/unexpected_token/index.html create mode 100644 files/es/web/javascript/reference/errors/unexpected_type/index.html (limited to 'files/es/web/javascript/reference/errors') diff --git a/files/es/web/javascript/reference/errors/bad_octal/index.html b/files/es/web/javascript/reference/errors/bad_octal/index.html new file mode 100644 index 0000000000..b12b1bc346 --- /dev/null +++ b/files/es/web/javascript/reference/errors/bad_octal/index.html @@ -0,0 +1,45 @@ +--- +title: 'SyntaxError: "x" is not a legal ECMA-262 octal constant' +slug: Web/JavaScript/Reference/Errors/Bad_octal +translation_of: Web/JavaScript/Reference/Errors/Bad_octal +--- +
{{jsSidebar("Errors")}}
+ +

Mensaje

+ +
Warning: SyntaxError: 08 is not a legal ECMA-262 octal constant.
+Warning: SyntaxError: 09 is not a legal ECMA-262 octal constant.
+
+ +

Tipo de Error

+ +

{{jsxref("SyntaxError")}} warning in strict mode only.

+ +

Que salio mal ?

+ +

Los literales decimales pueden comenzar con un cero (0) seguido de otro dígito decimal, pero Si todos los dígitos después del 0 inicial son más pequeños que 8, el número se interpreta como un número octal. Pero este no es el caso con 08 y 09, JavaScript advierte sobre ello.

+ +

Tenga en cuenta que las literales octales y las secuencias de escape octal están obsoletas y presentarán una advertencia de depreciación adicional. Con ECMAScript 6 y posteriores, la sintaxis utiliza un cero a la izquierda seguido de una letra latina en minúscula o mayúscula "O" (0o o 0O). Consulte la página sobre gramática léxica para obtener más información.

+ +

Ejemplos

+ +

Numeros octales invalidos

+ +
08;
+09;
+// SyntaxError: 08 is not a legal ECMA-262 octal constant
+// SyntaxError: octal literals and octal escape sequences are deprecated
+ +

Números octales válidos

+ +

Utilice el cero inicialmente seguido de la letra "o";

+ +
0O755;
+0o644;
+
+ +

Ver Tambien

+ + diff --git a/files/es/web/javascript/reference/errors/caracter_ilegal/index.html b/files/es/web/javascript/reference/errors/caracter_ilegal/index.html new file mode 100644 index 0000000000..cc9422a21d --- /dev/null +++ b/files/es/web/javascript/reference/errors/caracter_ilegal/index.html @@ -0,0 +1,83 @@ +--- +title: 'ErrorDeSintaxis: Caracter ilegal' +slug: Web/JavaScript/Reference/Errors/caracter_ilegal +tags: + - Error + - Error de sintaxis + - JavaScript + - SyntaxError + - errores +translation_of: Web/JavaScript/Reference/Errors/Illegal_character +--- +
{{jsSidebar("Errors")}}
+ +

Mensaje

+ +
SyntaxError: illegal character (Firefox)
+SyntaxError: Invalid or unexpected token (Chrome)
+ +
ErrorDeSintasix: Carácter ilegal (Firefox)
+ErrorDeSintasix: Componente léxico inválido o inesperado (Chrome)
+
+ +

Tipo de error

+ +

{{jsxref("SyntaxError")}}  {{jsxref("ErrorDeSintaxis")}}

+ +

¿Qué salió mal?

+ +

Hay un componente léxico inválido o inesperado que no pertenece a su posición en el código. Utilice un editor que soporte el resaltado de sintaxis y que revise cuidadosamente su código contra discrepancias como un signo menos ( - ) contra un guion () o comillas simples ( " ) contra comillas no estándar ().

+ +

Ejemplos

+ +

Caracteres no coincidentes

+ +

Algunos caracteres parecen iguales, pero hará que el analizador falle al interpretar su código.

+ +
“Esto parece una cadena de caracteres”;
+// SyntaxError: illegal character
+// ErrorDeSintaxis: Carácter ilegal
+
+42 – 13;
+// SyntaxError: illegal character
+// ErrorDeSintaxis: Carácter ilegal
+
+ +

Esto debería funcionar:

+ +
"Esto en realidad es una cadena de caracteres";
+
+42 - 13;
+
+ +

Caracteres olvidados

+ +

Es fácil olvidar caracteres aquí o allí.

+ +
var colors = ['#000', #333', '#666'];
+// SyntaxError: illegal character
+// ErrorDeSintaxis: Carácter ilegal
+
+ +

Agregue la comilla olvidada para '#333'.

+ +
var colors = ['#000', '#333', '#666'];
+ +

Caracteres escondidos

+ +

Cuando copia y pega un código de una fuente externa, puede haber caracteres inválidos. ¡Cuidado!

+ +
var foo = 'bar';​
+// SyntaxError: illegal character
+// ErrorDeSintaxis: Carácter ilegal
+
+ +

Al inspeccionar este código en un editor como Vim, puede ver que en realidad hay un carácter de espacio de ancho cero (ZWSP) (U+200B).

+ +
var foo = 'bar';​<200b>
+ +

Vea también

+ + diff --git a/files/es/web/javascript/reference/errors/deprecated_source_map_pragma/index.html b/files/es/web/javascript/reference/errors/deprecated_source_map_pragma/index.html new file mode 100644 index 0000000000..bd44b0ed7c --- /dev/null +++ b/files/es/web/javascript/reference/errors/deprecated_source_map_pragma/index.html @@ -0,0 +1,57 @@ +--- +title: >- + SyntaxError: Using //@ to indicate sourceURL pragmas is deprecated. Use //# + instead +slug: Web/JavaScript/Reference/Errors/Deprecated_source_map_pragma +tags: + - Error + - Fuente + - JavaScript +translation_of: Web/JavaScript/Reference/Errors/Deprecated_source_map_pragma +--- +
{{jsSidebar("Errors")}}
+ +

Mensaje

+ +
Advertencia: Error de Sintaxis al utilizar //@ para indicar el código fuente de la URL esta obsoleto. En su lugar use //#.
+
+Advertencia: Error de Sintaxis: al utilizar //@ para indicar el mapeo de programas del código fuente de la URL esta obsoleto. En su lugar use //#.
+
+ +

Tipo de error

+ +

Una advertencia ocurrida como esta {{jsxref("SyntaxError")}}. JavaScript no se detendrá.

+ +

Descripción del error

+ +

Esta es una sintaxis obsoleta del codigo fuente de mapa en JavaScript.

+ +

Las sintaxis de código fuente de mapa en JavaScript se suelen combinar y minificar para hacer que la entrega desde el servidor sea más eficiente. Con los códigos de origen de  mapas, el depurador puede asignar el código que se está ejecutando a los archivos de origen.

+ +

La especificación de mapa de código fuente cambió la sintaxis debido a un conflicto con IE  con la versión windows 8.x siempre que se encontró en la página. Despues  //@cc_on fue interpretado para activar la compilación condicional en el motor IE  JScript. El comentario de compilación condicional en IE es una característica poco conocida, pero rompió mapas de fuente de origen con jQuery y otras bibliotecas.

+ +

Ejemplos

+ +

Sintaxis obsoleta

+ +

Sintaxis con el signo obsoleto "@".

+ +
//@ sourceMappingURL=http://example.com/path/to/your/sourcemap.map
+
+ +

Sintaxis estándar

+ +

En su lugar use el signo "#".

+ +
//# sourceMappingURL=http://example.com/path/to/your/sourcemap.map
+ +

O, alternativamente, puede establecer un encabezado en su archivo JavaScript para evitar tener un comentario de error de sintaxis:

+ +
X-SourceMap: /path/to/file.js.map
+ +

Vea También

+ + diff --git a/files/es/web/javascript/reference/errors/falta_puntoycoma_antes_de_declaracion/index.html b/files/es/web/javascript/reference/errors/falta_puntoycoma_antes_de_declaracion/index.html new file mode 100644 index 0000000000..c03cb15dd2 --- /dev/null +++ b/files/es/web/javascript/reference/errors/falta_puntoycoma_antes_de_declaracion/index.html @@ -0,0 +1,72 @@ +--- +title: 'ErrordeSintaxis: Punto y coma ; faltante antes de la declaracion' +slug: Web/JavaScript/Reference/Errors/Falta_puntoycoma_antes_de_declaracion +tags: + - JavaScript + - errores + - errorsintaxis + - puntoycoma +translation_of: Web/JavaScript/Reference/Errors/Missing_semicolon_before_statement +--- +
{{jsSidebar("Errores")}}
+ +

Mensaje

+ +
Error de Sintaxis: Punto y coma ; faltante antes de la declaración
+
+ +

Tipo de Error

+ +

{{jsxref("SyntaxError")}}.

+ +

¿Qué salio mal?

+ +

Hay un punto y coma (;) faltando en alguna parte. Las declaraciones Javascript deben terminar con punto y coma. Algunas de ellas son afectadas por la inserción automática (ASI), pero en este caso necesitas colocar un punto y coma, de esta forma Javascript puede analizar el código fuente de forma correcta.

+ +

Sin embargo, algunas veces, este error es solo una consecuencia de otro error, como no separar las cadenas de texto correctamente, o usar var incorrectamente. Tal vez tengas muchos paréntesis en algún lugar. Revisa cuidadosamente la sintaxis cuando este error es lanzado.

+ +

Ejemplo

+ +

Cadenas de texto (strings) sin terminar

+ +

Este error puede pasar fácilmente cuando no se colocan las comillas correctamente y el motor de JavaScript esta esperando el final de la cadena. por ejemplo:

+ +
var foo = 'El bar de Tom's';
+// Error de Sintaxis: Punto y coma ; faltante antes de la declaración
+ +

En este caso se pueden usar comillas dobles para escapar del apóstrofe:

+ +
var foo = "El bar de Tom's";
+var foo = 'El bar de Tom\'s';
+
+ +
+

Nota: Este error suele pasar frecuentemene con cadenas del idioma Inglés

+
+ +

Declarar propiedades con var

+ +

No se pueden declarar propiedades de un objeto o arreglo con una declaración var

+ +
var obj = {};
+var obj.foo = 'hola'; // Error de Sintaxis: Punto y coma ; faltante antes de la declaración
+
+var array = [];
+var array[0] = 'mundo'; // Error de Sintaxis: Punto y coma ; faltante antes de la declaración
+
+ +

En vez de esto. omitamos la palabra  var:

+ +
var obj = {};
+obj.foo = 'hola';
+
+var array = [];
+array[0] = 'mundo';
+
+ +

Ver también:

+ + diff --git a/files/es/web/javascript/reference/errors/in_operator_no_object/index.html b/files/es/web/javascript/reference/errors/in_operator_no_object/index.html new file mode 100644 index 0000000000..d2a549f48a --- /dev/null +++ b/files/es/web/javascript/reference/errors/in_operator_no_object/index.html @@ -0,0 +1,71 @@ +--- +title: 'TypeError: cannot use ''in'' operator to search for ''x'' in ''y''' +slug: Web/JavaScript/Reference/Errors/in_operator_no_object +tags: + - Error + - JavaScript + - TiposError + - TypeError + - errores +translation_of: Web/JavaScript/Reference/Errors/in_operator_no_object +--- +
{{jsSidebar("Errors")}}
+ +

Mensaje

+ +
TypeError: cannot use 'in' operator to search for 'x' in 'y' (Firefox, Chrome)
+
+ +

Tipo de Error

+ +

{{jsxref("TypeError")}}

+ +

¿Qué salió mal?

+ +

El operador in puede ser usado sólo para verificar si una propiedad se encuentra en un objeto. No puede buscar en cadenas de caracteres, o en números, u otro tipo primitivo.

+ +

Ejemplos

+ +

Buscando en cadenas de caracteres

+ +

A diferencia de otros lenguajes de programación (ej. Python), no puede buscar cadenas de texto usando el operator in.

+ +
"Hello" in "Hello World";
+// TypeError: cannot use 'in' operator to search for 'Hello' in 'Hello World'
+ +

En su lugar, deberá usar {{jsxref("String.prototype.indexOf()")}}, por ejemplo.

+ +
"Hello World".indexOf("Hello") !== -1;
+// true
+ +

El operando no puede ser null o undefined

+ +

Asegúrese que el objeto que está inspeccionando no sea {{jsxref("null")}} o {{jsxref("undefined")}}.

+ +
var foo = null;
+"bar" in foo;
+// TypeError: cannot use 'in' operator to search for 'bar' in 'foo'
+
+ +

El operador in siempre espera un objeto.

+ +
var foo = { baz: "bar" };
+"bar" in foo; // false
+
+"PI" in Math; // true
+"pi" in Math; // false
+
+ +

Buscando en arreglos

+ +

Tenga cuidado cuando use el operador in para buscar en objetos {{jsxref("Array")}}. El operador in verifica el índice numérico, no el valor de dicho índice.

+ +
var trees = ['redwood', 'bay', 'cedar', 'oak', 'maple'];
+3 in trees; // true
+"oak" in trees; // false
+ +

Vea también

+ + diff --git a/files/es/web/javascript/reference/errors/index.html b/files/es/web/javascript/reference/errors/index.html new file mode 100644 index 0000000000..c752aa10c6 --- /dev/null +++ b/files/es/web/javascript/reference/errors/index.html @@ -0,0 +1,29 @@ +--- +title: JavaScript error reference +slug: Web/JavaScript/Reference/Errors +tags: + - Depuración + - Error + - Excepciones + - Excepción + - JavaScript + - errores +translation_of: Web/JavaScript/Reference/Errors +--- +

{{jsSidebar("Errors")}}

+ +

Abajo encontraras una lista de los errores que son generados por JavaScript. Estos errores pueden ser una ayuda útil al depurar, aunque el problema reportado no siempre es precisamente claro. Las paginas de abajo proporcionan detalles adicionales sobre estos errores. Cada error es un objeto basado en el objeto {{jsxref("Error")}} , y tiene un nombre y un mensaje.

+ +

Los errores mostrados en la consola web pueden incluir un link a la pagina debajo correspondiente para ayudarte a comprender rápidamente el problema en tu código.

+ +

Lista de errores

+ +

En esta lista, cada pagina esta ordenada por nombre (el tipo de error) y el mensaje (un mensaje de error mas detallado y legible). Juntos,estas dos propiedades proveen un punto de partida hacia el entendimiento y la resolución del problema. Para mas información, ¡Sigue los links abajo!

+ +

{{ListSubPages("/en-US/docs/Web/JavaScript/Reference/Errors")}}

+ +

Ve también

+ + diff --git a/files/es/web/javascript/reference/errors/indicador_regexp_no-val/index.html b/files/es/web/javascript/reference/errors/indicador_regexp_no-val/index.html new file mode 100644 index 0000000000..3bb05d9b89 --- /dev/null +++ b/files/es/web/javascript/reference/errors/indicador_regexp_no-val/index.html @@ -0,0 +1,113 @@ +--- +title: 'SyntaxError: indicador de expresión regular no válido "x"' +slug: Web/JavaScript/Reference/Errors/Indicador_regexp_no-val +tags: + - Error + - Error de sintaxis + - JavaScript + - SyntaxError +translation_of: Web/JavaScript/Reference/Errors/Bad_regexp_flag +--- +
{{jsSidebar("Errors", "Errores")}}
+ +

La excepción de JavaScript "indicador de expresión regular no válido" se produce cuando las indicadores, definidas después de la segunda barra en la expresión regular literal, no son de g, i, m, s, u o y.

+ +

Mensaje

+ +
SyntaxError: error de sintaxis en la expresión regular (Edge)
+SyntaxError: marca de expresión regular no válida "x" (Firefox)
+SyntaxError: indicadores de expresión regular no válidos (Chrome)
+
+ +

Tipo Error

+ +

{{jsxref("SyntaxError")}}

+ +

¿Qué salió mal?

+ +

Hay indicadores de expresión regular no válidos en el código. En una expresión regular literal, que consiste en un patrón encerrado entre barras, los indicadores se definen después de la segunda barra. También se pueden definir en la función constructora del objeto {{jsxref("RegExp")}} (segundo parámetro). Los indicadores de expresión regular se pueden usar por separado o juntos en cualquier orden, pero solo hay seis de ellos en ECMAScript.

+ +

Para incluir una bandera con la expresión regular, usa esta sintaxis:

+ +
var re = /patrón/indicadores;
+
+ +

o

+ +
var re = new RegExp('patrón', 'indicadores');
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Indicadores de expresión regular
BanderaDescripción
gBúsqueda global.
iBúsqueda que no distingue entre mayúsculas y minúsculas.
mBúsqueda multilínea.
sPermite que el punto (.) coincida con las nuevas líneas (agregado en ECMAScript 2018)
uUnicode; trata el patrón como una secuencia de puntos de código Unicode
yRealiza una búsqueda "pegajosa" que coincida a partir de la posición actual en la cadena de destino. Consulta {{jsxref("RegExp.sticky", "sticky")}}
+ +

Ejemplos

+ +

Solo hay seis indicadores de expresión regular válidos.

+ +
/foo/bar;
+
+// SyntaxError: indicador de expresión regular no válido "b"
+
+ +

¿Tenías la intención de crear una expresión regular? Una expresión que contiene dos barras se interpreta como una expresión regular literal.

+ +
let obj = {
+  url: /docs/Web
+};
+
+// SyntaxError: indicador de expresión regular no válido "W"
+
+ +

¿O pretendías crear una cadena en su lugar? Agrega comillas simples o dobles para crear una cadena literal.

+ +
let obj = {
+  url: '/docs/Web'
+};
+ +

Indicadores de expresión regular válidos

+ +

Consulta la tabla anterior para ver las seis marcas de expresiones regulares válidas que están permitidas en JavaScript.

+ +
/foo/g;
+/foo/gims;
+/foo/uy;
+
+ +

Ve también

+ + diff --git a/files/es/web/javascript/reference/errors/invalid_array_length/index.html b/files/es/web/javascript/reference/errors/invalid_array_length/index.html new file mode 100644 index 0000000000..f0665e5e7f --- /dev/null +++ b/files/es/web/javascript/reference/errors/invalid_array_length/index.html @@ -0,0 +1,78 @@ +--- +title: 'RangeError: invalid array length' +slug: Web/JavaScript/Reference/Errors/Invalid_array_length +tags: + - Array + - JavaScript + - RangeError + - errores +translation_of: Web/JavaScript/Reference/Errors/Invalid_array_length +--- +
{{jsSidebar("Errors")}}
+ +

Mensaje

+ +
RangeError: invalid array length (Firefox)
+RangeError: Invalid array length (Chrome)
+RangeError: Invalid array buffer length (Chrome)
+
+ +

Tipo de error

+ +

{{jsxref("RangeError")}}

+ +

¿Cuál es el problema?

+ +

Una longitud de array inválida puede presentarse en éstas situaciones:

+ + + +

¿Por qué el Array y ArrayBuffer tienen longitud limitada? La propiedad de longitud de un Array o un ArrayBuffer está representada con un entero sin signo de 32 bits, el cual sólo puede almacenar valores que estén en el rango de 0 a 232-1.

+ +

Si estás creando un Array usando el constructor, es mejor que utilices la notación literal, ya que el primer argumento es interpretado como la longitud del Array.

+ +

De lo contrario, puedes especificar un mínimo y un máximo para la longitud antes de definir la propiedad de longitud, o puedes usarla como el argumento del constructor.

+ +

Ejemplos

+ +

Casos inválidos

+ +
new Array(Math.pow(2, 40))
+new Array(-1)
+new ArrayBuffer(Math.pow(2, 32))
+new ArrayBuffer(-1)
+
+let a = [];
+a.length = a.length - 1;         // definir la propiedad de longitud a -1
+
+let b = new Array(Math.pow(2, 32) - 1);
+b.length = b.length + 1;         // definir la propiedad de longitud a 2^32
+
+ +

Casos válidos

+ +
[ Math.pow(2, 40) ]                     // [ 1099511627776 ]
+[ -1 ]                                  // [ -1 ]
+new ArrayBuffer(Math.pow(2, 32) - 1)
+new ArrayBuffer(0)
+
+let a = [];
+a.length = Math.max(0, a.length - 1);
+
+let b = new Array(Math.pow(2, 32) - 1);
+b.length = Math.min(0xffffffff, b.length + 1);
+
+// 0xffffffff es la notación hexadecimal de 2^32 - 1
+// el cual también se puede especificar como (-1 >>> 0)
+
+ +

Véase también

+ + diff --git a/files/es/web/javascript/reference/errors/invalid_date/index.html b/files/es/web/javascript/reference/errors/invalid_date/index.html new file mode 100644 index 0000000000..f8036e83e2 --- /dev/null +++ b/files/es/web/javascript/reference/errors/invalid_date/index.html @@ -0,0 +1,58 @@ +--- +title: 'RangeError: invalid date' +slug: Web/JavaScript/Reference/Errors/Invalid_date +tags: + - ErrorDeRango + - JavaScript + - errores +translation_of: Web/JavaScript/Reference/Errors/Invalid_date +--- +
{{jsSidebar("Errors")}}
+ +

Mensaje

+ +
RangeError: invalid date (Firefox)
+RangeError: invalid time value (Chrome)
+RangeError: Provided date is not in valid range (Chrome)
+
+ +

Tipo de error

+ +

{{jsxref("RangeError")}}

+ +

¿Cuál es el problema?Edit

+ +

Se ha proporcionado una cadena con una fecha no válida para {{jsxref("Date")}} o {{jsxref("Date.parse()")}}.

+ +

Ejemplos

+ +

Casos no válidos

+ +
+
Las cadenas o fechas irreconocibles que contienen valores de elementos ilegales en cadenas con formato ISO suelen devolver {{jsxref("Nan")}}. Sin embargo, dependiendo de la implementación, las cadenas de formato ISO no conformes, también pueden lanzar RangeError: invalid date, como los siguientes casos en Firefox:
+ +
 
+
+ +
new Date('foo-bar 2014');
+new Date('2014-25-23').toISOString();
+new Date('foo-bar 2014').toString();
+
+ +

Esto, sin embargo, devuelve {{jsxref("NaN")}} en Firefox:

+ +
Date.parse('foo-bar 2014'); // NaN
+ +

Para más información, consulte la documentación de {{jsxref("Date.parse()")}}.

+ +

Casos válidos

+ +
new Date('05 October 2011 14:48 UTC');
+ +

Véase también

+ + diff --git a/files/es/web/javascript/reference/errors/malformed_formal_parameter/index.html b/files/es/web/javascript/reference/errors/malformed_formal_parameter/index.html new file mode 100644 index 0000000000..b4139e8269 --- /dev/null +++ b/files/es/web/javascript/reference/errors/malformed_formal_parameter/index.html @@ -0,0 +1,60 @@ +--- +title: 'SyntaxError: Malformed formal parameter' +slug: Web/JavaScript/Reference/Errors/Malformed_formal_parameter +tags: + - JavaScript + - SyntaxError + - errores +translation_of: Web/JavaScript/Reference/Errors/Malformed_formal_parameter +--- +

Mensaje

+ +
SyntaxError: Expected {x} (Edge)
+SyntaxError: malformed formal parameter (Firefox)
+
+ +

Tipo de error

+ +

{{jsxref("SyntaxError")}}

+ +

¿Qué salió mal?

+ +

Hay un constructor Function() con al menos dos argumentos pasados en el código. El último argumento es el código fuente de la nueva función que está creando. Todo lo demás forma la lista de argumentos de su nueva función.
+
+ La lista de argumentos no es válida de alguna manera. Quizás eligió accidentalmente una palabra clave como if o var como nombre de argumento, o tal vez haya algún signo de puntuación en su lista de argumentos. O tal vez accidentalmente pasó un valor no válido, como un número u objeto.

+ +

OK, eso solucionó mi problema. Pero, ¿Por qué no dijiste eso en primer lugar?

+ +

Es cierto que la redacción del mensaje de error es un poco extraña. El "parámetro formal" es una forma elegante de decir "argumento de función". Y usamos la palabra "malformada" porque todos los ingenieros de Firefox son grandes admiradores de las novelas de terror góticas del siglo XIX.

+ +

Ejemplos

+ +

Casos no validos

+ +
var f = Function('x y', 'return x + y;');
+// SyntaxError (Falta una coma)
+
+var f = Function('x,', 'return x;');
+// SyntaxError (Coma extraña)
+
+var f = Function(37, "alert('OK')");
+// SyntaxError (Números no pueden ser nombres de argumentos)
+
+ +

Casos validos

+ +
var f = Function('x, y', 'return x + y;');  // Correctamente puntuado
+
+var f = Function('x', 'return x;');
+
+// Si puede, evite usar Function - Esto es mucho más rápido
+var f = function(x) { return x; };
+
+ +

Ver tambien

+ + diff --git a/files/es/web/javascript/reference/errors/missing_curly_after_property_list/index.html b/files/es/web/javascript/reference/errors/missing_curly_after_property_list/index.html new file mode 100644 index 0000000000..b846b70c9f --- /dev/null +++ b/files/es/web/javascript/reference/errors/missing_curly_after_property_list/index.html @@ -0,0 +1,47 @@ +--- +title: 'SyntaxError: missing } after property list' +slug: Web/JavaScript/Reference/Errors/Missing_curly_after_property_list +translation_of: Web/JavaScript/Reference/Errors/Missing_curly_after_property_list +--- +
{{jsSidebar("Errors")}}
+ +

Mensaje

+ +
SyntaxError: missing } after property list
+
+ +

Tipo de error

+ +

{{jsxref("SyntaxError")}}

+ +

¿Que estuvo mal?

+ +

Es un error de sinaxis en algún lugar en el object initializer. Prodría provocarse debido a la falta de una llave, pero, por ejemplo tambien por falta de alguna coma. Tambien verifique si alguna llave o parentesis se encuentra en el orden correcto. Indentar o darle un buen formato al codido puede ayudarlo a observar mejor el error.

+ +

Ejemplos

+ +

Olvido de coma

+ +

Algunas veces, hace faltan las comas en codigo inicial del proyecto, he aquí un ejemplo:

+ +
var obj = {
+  a: 1,
+  b: { myProp: 2 }
+  c: 3
+};
+
+ +

La correción podría ser:

+ +
var obj = {
+  a: 1,
+  b: { myProp: 2 },
+  c: 3
+};
+
+ +

Observe Tambien

+ + diff --git a/files/es/web/javascript/reference/errors/missing_formal_parameter/index.html b/files/es/web/javascript/reference/errors/missing_formal_parameter/index.html new file mode 100644 index 0000000000..8ea7e3684a --- /dev/null +++ b/files/es/web/javascript/reference/errors/missing_formal_parameter/index.html @@ -0,0 +1,75 @@ +--- +title: 'SyntaxError: missing formal parameter' +slug: Web/JavaScript/Reference/Errors/Missing_formal_parameter +translation_of: Web/JavaScript/Reference/Errors/Missing_formal_parameter +--- +
{{jsSidebar("Errors")}}
+ +

Mensaje

+ +
SyntaxError: missing formal parameter (Firefox)
+
+ +

Tipo de error

+ +

{{jsxref("SyntaxError")}}

+ +

¿Que es lo que fue mal?

+ +

"Formal parameter" es una forma adornada de decir "parámetro de función". Tu declaración de funcion carece de parámetros válidos. En la declaración de la función, los parámetros deben ser {{Glossary("Identifier", "identifiers")}}, no ningún valor cómo números, cadenas, o objetos. Declarar las funciones y invocarlas son dos pasos distindos. La declaración sólo requiere identificador/es. Es en la invocación que asignas los valores.

+ +

En {{glossary("JavaScript")}}, los indentificadosres sólo pueden contener carácteres alfanuméricos (o "$" y "_"), no pueden comenzar por número. Un identificador difiere de una cadena en que la cadena son datos, mientras que lo primero es parte del código.

+ +

Ejemplos

+ +

Los parámetros de función deben ser identificadores cuando creas la función. Todas estas declaraciones fallan, ya que proveen parámetros:

+ +
function square(3) {
+  return number * number;
+};
+// SyntaxError: missing formal parameter
+
+function greet("Howdy") {
+  return greeting;
+};
+// SyntaxError: missing formal parameter
+
+function log({ obj: "value"}) {
+  console.log(arg)
+};
+// SyntaxError: missing formal parameter
+
+ +

Necesitarás usar identificadores en las funciones:

+ +
function square(number) {
+  return number * number;
+};
+
+function greet(greeting) {
+  return greeting;
+};
+
+function log(arg) {
+  console.log(arg)
+};
+ +

Entonces podrás invocarlas con argumentos a tu gusto:

+ +
square(2); // 4
+
+greet("Howdy"); // "Howdy"
+
+log({obj: "value"}); // Object { obj: "value" }
+
+ +

También interesante

+ + diff --git a/files/es/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.html b/files/es/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.html new file mode 100644 index 0000000000..4b72369e87 --- /dev/null +++ b/files/es/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.html @@ -0,0 +1,51 @@ +--- +title: 'SyntaxError: missing ) after argument list' +slug: Web/JavaScript/Reference/Errors/Missing_parenthesis_after_argument_list +translation_of: Web/JavaScript/Reference/Errors/Missing_parenthesis_after_argument_list +--- +
{{jsSidebar("Errors")}}
+ +

Mensaje

+ +
SyntaxError: missing ) after argument list
+
+ +

Tipo de error

+ +

{{jsxref("SyntaxError")}}.

+ +

¿Cuál es el problema?

+ +

Hay un error en cómo la función es llamada. Esto puede ser un typo, la falta de un operador, o un string no escapado, por ejemplo.

+ +

Ejemplo

+ +

Debido a que no se encuentra el operador "+" para concatenar el string, JavaScript espera que el argumento de la función log sea solo "PI: ". En tal caso, debería terminar con el paréntesis de cierre.

+ +
console.log('PI: ' Math.PI);
+// SyntaxError: missing ) after argument list
+
+ +

Puedes corregir la llamada del log, agregando el operador "+":

+ +
console.log('PI: ' + Math.PI);
+// "PI: 3.141592653589793"
+ + + +

Strings sin cierre

+ +
console.log('"Java" + "Script" = \"' + 'Java' + 'Script\");
+// SyntaxError: missing ) after argument list
+
+ +

Aquí JavaScript  piensa que tienes ); dentro del string y lo ignora, y termina no sabiendo que quisiste utilizar ); para cerrar la función console.log. Para solucionar esto, podemos poner un '  después del string "Script":

+ +
console.log('"Java" + "Script" = \"' + 'Java' + 'Script\"');
+// '"Java" + "Script" = "JavaScript"'
+ +

Véase también

+ + diff --git a/files/es/web/javascript/reference/errors/more_arguments_needed/index.html b/files/es/web/javascript/reference/errors/more_arguments_needed/index.html new file mode 100644 index 0000000000..fd392c5801 --- /dev/null +++ b/files/es/web/javascript/reference/errors/more_arguments_needed/index.html @@ -0,0 +1,51 @@ +--- +title: 'TypeError: More arguments needed' +slug: Web/JavaScript/Reference/Errors/More_arguments_needed +tags: + - Errors + - JavaScript + - Tipo de Error + - TypeError + - errores +translation_of: Web/JavaScript/Reference/Errors/More_arguments_needed +--- +
{{jsSidebar("Errors")}}
+ +

Mensage

+ +
TypeError: argument is not an Object and is not null (Edge)
+TypeError: Object.create necesita al menos 1 argumento, pero solo only 0 fueron aprovadas.
+TypeError: Object.setPrototypeOf necesita al menos 2 argumentos, pero solo 0 fueron aprovados
+TypeError: Object.defineProperties requires at least 1 argument, but only 0 were passed
+
+ +

Tipo de error

+ +

{{jsxref("TypeError")}}.

+ +

¿Qué fué mal?

+ +

Hay un error con que una funcion es llamada. Más argumentos necesitan ser dados.

+ +

Ejemplos

+ +

El método {{jsxref("Object.create()")}} necesita al menos un argumento y el método {{jsxref("Object.setPrototypeOf()")}} necesita al menos 2 argumentos.

+ +
var obj = Object.create();
+// TypeError: Object.create necesita al menos 1 argumento, pero ninguno fue aprovad
+
+var obj = Object.setPrototypeOf({});
+// TypeError: Object.setPrototypeOf requires at least 2 arguments, but only 1 were passed
+
+ +

Puedes arreglar esto configurando {{jsxref("null")}} como el prototipo, por ejemplo:

+ +
var obj = Object.create(null);
+
+var obj = Object.setPrototypeOf({}, null);
+ +

Ver también

+ + diff --git a/files/es/web/javascript/reference/errors/no_variable_name/index.html b/files/es/web/javascript/reference/errors/no_variable_name/index.html new file mode 100644 index 0000000000..4ff3b8090e --- /dev/null +++ b/files/es/web/javascript/reference/errors/no_variable_name/index.html @@ -0,0 +1,83 @@ +--- +title: 'SyntaxError: missing variable name' +slug: Web/JavaScript/Reference/Errors/No_variable_name +tags: + - Error + - Error de sintaxis + - errores +translation_of: Web/JavaScript/Reference/Errors/No_variable_name +--- +
{{jsSidebar("Errors")}}
+ +

Mensaje

+ +
SyntaxError: missing variable name (Firefox)
+SyntaxError: Unexpected token = (Chrome)
+ +

Error 

+ +

{{jsxref("SyntaxError")}}

+ +

¿Qué anda mal?

+ +

Una variable no tiene nombre. Esto es un error recurrente en el código. Probablemente una coma está mal colocada en algún lugar o nombraste mal una variable. Completamente entendible. Nombrar cosas es difícil.

+ +

Ejemplos

+ +

Missing a variable name

+ +
var = "foo";
+
+ +

Es bueno nombrar buenas variables. Todos hemos estado así.

+ +
var ohGodWhy = "foo";
+ +

Palabras reservadas no pueden ser nombre de variables

+ +

Hay algunas palabras que son reservadas. No puedes usarlas para nombrar variables, lo siento :(

+ +
var debugger = "whoop";
+// SyntaxError: missing variable name
+
+ +

Declarar multiples variables

+ +

Toma especial atención a las comas cuando declaras multiples variables. ¿Hay un exceso de comas? ¿Accidentalmente añadiste comas en vez de punto y coma? 

+ +
var x, y = "foo",
+var x, = "foo"
+
+var first = document.getElementById('one'),
+var second = document.getElementById('two'),
+
+// SyntaxError: missing variable name
+
+ +

La versión arreglada:

+ +
var x, y = "foo";
+var x = "foo";
+
+var first = document.getElementById('one');
+var second = document.getElementById('two');
+ +

Arrays

+ +

{{jsxref("Array")}} literales en JavaScript necesitan corchetes alrededor de los valores. Esto no funciona:

+ +
var arr = 1,2,3,4,5;
+// SyntaxError: missing variable name
+
+ +

Esto es correcto:

+ +
var arr = [1,2,3,4,5];
+ +

Ver también

+ + diff --git a/files/es/web/javascript/reference/errors/not_a_codepoint/index.html b/files/es/web/javascript/reference/errors/not_a_codepoint/index.html new file mode 100644 index 0000000000..0c89773f6b --- /dev/null +++ b/files/es/web/javascript/reference/errors/not_a_codepoint/index.html @@ -0,0 +1,51 @@ +--- +title: 'RangeError: argument is not a valid code point' +slug: Web/JavaScript/Reference/Errors/Not_a_codepoint +translation_of: Web/JavaScript/Reference/Errors/Not_a_codepoint +--- +
{{jsSidebar("Errors")}}
+ +

Message

+ +
RangeError: {0} is not a valid code point (Firefox)
+RangeError: Invalid code point {0} (Chrome)
+
+ +

Tipo de error

+ +

{{jsxref("RangeError")}}

+ +

¿Qué estuvo mal?

+ +

El metodo {{jsxref("String.fromCodePoint()")}} acepta solamente code point validos.

+ +

Un code point es un valor en el conjunto de caracteres Unicode; esto es, un rango de enteros que va desde 0 a 0x10FFFF.

+ +

Usando valores {{jsxref("NaN")}}, enteros negativos (-1), no enteros (3.14), o valores mayores a 0x10FFFF (1114111) no trabajarian con este metodo.

+ +

Ejemplos

+ +

Casos invalidos

+ +
String.fromCodePoint('_');      // RangeError
+String.fromCodePoint(Infinity); // RangeError
+String.fromCodePoint(-1);       // RangeError
+String.fromCodePoint(3.14);     // RangeError
+String.fromCodePoint(3e-2);     // RangeError
+String.fromCodePoint(NaN);      // RangeError
+ +

Casos validos

+ +
String.fromCodePoint(42);       // "*"
+String.fromCodePoint(65, 90);   // "AZ"
+String.fromCodePoint(0x404);    // "\u0404"
+String.fromCodePoint(0x2F804);  // "\uD87E\uDC04"
+String.fromCodePoint(194564);   // "\uD87E\uDC04"
+String.fromCodePoint(0x1D306, 0x61, 0x1D307) // "\uD834\uDF06a\uD834\uDF07"
+
+ +

Observe tambien

+ + diff --git a/files/es/web/javascript/reference/errors/not_a_function/index.html b/files/es/web/javascript/reference/errors/not_a_function/index.html new file mode 100644 index 0000000000..7d1987cc64 --- /dev/null +++ b/files/es/web/javascript/reference/errors/not_a_function/index.html @@ -0,0 +1,124 @@ +--- +title: 'TypeError: "x" is not a function' +slug: Web/JavaScript/Reference/Errors/Not_a_function +tags: + - Error + - ErrorDeTipo + - JavaScript + - errores +translation_of: Web/JavaScript/Reference/Errors/Not_a_function +--- +
{{jsSidebar("Errors")}}
+ +

Mensaje

+ +
TypeError: "x" is not a function
+
+ +

Tipo de error

+ +

{{jsxref("TypeError")}}.

+ +

¿Qué salió mal?

+ +

Se ha intentado llamar a un elemento o valor como si fuera una función, pero no lo era. El código esperaba que hubiera una función implementada, pero no la ha encontrado.

+ +

¿Está bien escrito el nombre de la función?¿El objeto sobre el que estás haciendo la llamada tiene ese método implementado realmente? Por ejemplo, los objetos tipo Array tienen implementada la función map, pero el resto de tipos no la tienen.

+ +

Hay muchas funciones propias de Javascript (built-in) que necesitan una función de callback, por lo que tienes que pasar esa función como parámetro para que estos métodos funcionen correctamente.

+ + + +

Ejemplos

+ +

Nombre de la función mal escrito

+ +

En este caso, que ocurre con mucha frecuencia, el nombre de la función está mal escrito:

+ +
var x = document.getElementByID("foo");
+// TypeError: document.getElementByID is not a function
+
+ +

El nombre correcto de la función es getElementById:

+ +
var x = document.getElementById("foo");
+
+ +

Función llamada en el objeto equivocado

+ +

Puede que el método que queramos usar no esté implementado en el tipo de objeto que estemos usado. En este ejemplo, queremos usar el método map, que recibe una función de callback como argumento, pero solo lo tienen los objetos {{jsxref("Array")}}.

+ +
var obj = { a: 13, b: 37, c: 42 };
+
+obj.map(function(num) {
+  return num * 2;
+});
+
+// TypeError: obj.map is not a function
+ +

Como obj es un diccionario (parejas clave/valor), no tiene método map y se produce el error. Para evitarlo, hay que usar un {{jsxref("Array")}}:

+ +
var numeros = [1, 4, 9];
+
+numeros.map(function(num) {
+  return num * 2;
+});
+
+// Array [ 2, 8, 18 ]
+
+ +

La función comparte un nombre con una propiedad preexistente

+ +

A veces, al hacer una clase, puede tener una propiedad y una función con el mismo nombre. Al llamar a la función, el compilador piensa que la función deja de existir.

+ +
var Perro = function () {
+ this.edad = 11;
+ this.color = "negro";
+ this.nombre = "Rafael";
+ return this;
+}
+
+Perro.prototype.nombre = function(nombre) {
+ this.nombre = nombre;
+ return this;
+}
+
+
+var miNuevoPerro = new Perro();
+miNuevoPerro.nombre("Lilly"); //Uncaught TypeError: myNewDog.name is not a function
+
+ +

Utilice un nombre de propiedad diferente en su lugar:

+ +
var Perro = function () {
+ this.edad = 11;
+ this.color = "negro";
+ this.nombrePerro = "Rafael"; //Usando this.nombrePerro en vez de .nombre
+ return this;
+}
+
+Perro.prototype.nombre = function(nombre) {
+ this.nombrePerro = nombre;
+ return this;
+}
+
+
+var miNuevoPerro = new Perro();
+miNuevoPerro.nombre("Lilly"); //Perro { edad: 11, color: 'negro', nombrePerro: 'Lilly' }
+ +

Ve también

+ + diff --git a/files/es/web/javascript/reference/errors/not_defined/index.html b/files/es/web/javascript/reference/errors/not_defined/index.html new file mode 100644 index 0000000000..4166d131ca --- /dev/null +++ b/files/es/web/javascript/reference/errors/not_defined/index.html @@ -0,0 +1,67 @@ +--- +title: 'ReferenceError: "x" is not defined' +slug: Web/JavaScript/Reference/Errors/Not_defined +tags: + - Error + - JavaScript + - ReferenceError +translation_of: Web/JavaScript/Reference/Errors/Not_defined +--- +
{{jsSidebar("Errors")}}
+ +
ReferenceError: "x" no está definida.
+ +

Tipo de error

+ +

{{jsxref("ReferenceError")}}

+ +

¿Qué está mal?

+ +

Hay una variable no existente que está siendo referida en algún lugar. Esta variable necesita ser declarada o se debe comprobar su disponibilidad en el {{Glossary("ámbito")}} actual del script.

+ +
+

Nota:  Cuando una librería es cargada (como por ejemplo  jQuery) asegúrese de que se haya cargado antes de intentar acceder a sus variables, como por ejemplo "$". Ponga la etiqueta {{HTMLElement("script")}}, que carga la librería antes del código que la utiliza.

+
+ +

Ejemplo

+ +

Variable no declarada

+ +
foo.substring(1); // ReferenceError: foo no está declarada.
+
+ +

La variable "foo" no está declarada en ninguna parte. La variable debe ser alguna cadena para que el método {{jsxref("String.prototype.substring()")}} funcione correctamente.

+ +
var foo = "bar";
+foo.substring(1); // "ar"
+ +

Contexto erróneo

+ +

Una variable necesita estar disponible en el contexto actual de ejecución. No se puede acceder a las variables definidas dentro de una función desde fuera de dicha función, debido a que la variable está definida solamente dentro de la función.

+ +
function numbers () {
+  var num1 = 2,
+      num2 = 3;
+  return num1 + num2;
+}
+
+console.log(num1); // ReferenceError num1 sin definir.
+ +

Sin embargo, una función puede acceder a todas las variables y funciones definidas dentro del ámbito en la cual ha sido definida. Es decir, una función en el contexto global puede acceder a todas las variables definidas en el contexto global.

+ +
var num1 = 2,
+    num2 = 3;
+
+function numbers () {
+  return num1 + num2;
+}
+
+console.log(num1); // 2
+ +

Temas relacionados

+ + diff --git a/files/es/web/javascript/reference/errors/precision_range/index.html b/files/es/web/javascript/reference/errors/precision_range/index.html new file mode 100644 index 0000000000..22c37598ff --- /dev/null +++ b/files/es/web/javascript/reference/errors/precision_range/index.html @@ -0,0 +1,96 @@ +--- +title: 'RangeError: precision is out of range' +slug: Web/JavaScript/Reference/Errors/Precision_range +translation_of: Web/JavaScript/Reference/Errors/Precision_range +--- +
{{jsSidebar("Errors")}}
+ +

The JavaScript exception "precision is out of range" occurs when a number that's outside of the range of 0 and 20 (or 21) was passed into toFixed or toPrecision.

+ +

Message

+ +
RangeError: The number of fractional digits is out of range (Edge)
+RangeError: The precision is out of range (Edge)
+RangeError: precision {0} out of range (Firefox)
+RangeError: toExponential() argument must be between 0 and 20 (Chrome)
+RangeError: toFixed() digits argument must be between 0 and 20 (Chrome)
+RangeError: toPrecision() argument must be between 1 and 21 (Chrome)
+
+ +

Error type

+ +

{{jsxref("RangeError")}}

+ +

Que salió mal?

+ +

Fué un argumento preciso fuera de rango en uno de estos metodos:

+ + + +

El rango permitido para estos metodos usualmente esta entre 0 o 20 (o 21). De todas formas la especificación  ECMAScript permite extender este rango.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
MethodFirefox (SpiderMonkey)Chrome, Opera (V8)
{{jsxref("Number.prototype.toExponential()")}}0 to 1000 to 20
{{jsxref("Number.prototype.toFixed()")}}-20 to 1000 to 20
{{jsxref("Number.prototype.toPrecision()")}}1 to 1001 to 21
+ +

Examples

+ +

Casos no validos

+ +
77.1234.toExponential(-1);  // RangeError
+77.1234.toExponential(101); // RangeError
+
+2.34.toFixed(-100);         // RangeError
+2.34.toFixed(1001);         // RangeError
+
+1234.5.toPrecision(-1);     // RangeError
+1234.5.toPrecision(101);    // RangeError
+
+ +

Casos validos

+ +
77.1234.toExponential(4); // 7.7123e+1
+77.1234.toExponential(2); // 7.71e+1
+
+2.34.toFixed(1); // 2.3
+2.35.toFixed(1); // 2.4 (note that it rounds up in this case)
+
+5.123456.toPrecision(5); // 5.1235
+5.123456.toPrecision(2); // 5.1
+5.123456.toPrecision(1); // 5
+
+ +

También te puede interesar:

+ + diff --git a/files/es/web/javascript/reference/errors/property_access_denied/index.html b/files/es/web/javascript/reference/errors/property_access_denied/index.html new file mode 100644 index 0000000000..1df56e4c5b --- /dev/null +++ b/files/es/web/javascript/reference/errors/property_access_denied/index.html @@ -0,0 +1,46 @@ +--- +title: 'Error: Permission denied to access property "x"' +slug: Web/JavaScript/Reference/Errors/Property_access_denied +tags: + - Error + - JavaScript + - Seguridad + - errores +translation_of: Web/JavaScript/Reference/Errors/Property_access_denied +--- +
{{jsSidebar("Errors")}}
+ +

Mensaje

+ +
Error: Permission denied to access property "x"
+ +

Tipo de error

+ +

{{jsxref("Error")}}.

+ +

¿Cuál es el problema?

+ +

Se ha intentado acceder a un objeto al cual no tienes permiso. Probablemente es un elemento {{HTMLElement("iframe")}} cargado de otro dominio en el cual violaste la política del mismo origen.

+ +

Ejemplos

+ +
<!DOCTYPE html>
+<html>
+  <head>
+    <iframe id="myframe" src="http://www1.w3c-test.org/common/blank.html"></iframe>
+    <script>
+      onload = function() {
+        console.log(frames[0].document);
+        // Error: Permission denied to access property "document"
+      }
+    </script>
+  </head>
+  <body></body>
+</html>
+ +

Véase también

+ + diff --git a/files/es/web/javascript/reference/errors/stmt_after_return/index.html b/files/es/web/javascript/reference/errors/stmt_after_return/index.html new file mode 100644 index 0000000000..1dd135c3ec --- /dev/null +++ b/files/es/web/javascript/reference/errors/stmt_after_return/index.html @@ -0,0 +1,74 @@ +--- +title: 'Advertencia: codigo inaccesible despues de sentencia de retorno' +slug: Web/JavaScript/Reference/Errors/Stmt_after_return +translation_of: Web/JavaScript/Reference/Errors/Stmt_after_return +--- +
{{jsSidebar("Errors")}}
+ +

Mensaje

+ +
Advertencia: código inaccesible después de sentencia de retorno (Firefox)
+
+ +

Tipo de error

+ +

Advertencia

+ +

Qué va mal?

+ +

Código inalcanzable después de una sentencia de retorno puede ocurrir en estas situaciones:

+ + + +

Cuando una expresion existe después de una sentencia de retorno válida, se da una advertencia para indicar que el código después de la sentencia de retorno es inalcanzable, lo que significa que nunca será ejecutado.

+ +

¿Porqué deberia tener un punto y coma despues de la sentencia de retorno? En el caso de sentencias sin punto y coma, estas pueden no ser claras, puede que el desarrollador intentara retornar el resultado de la sentencia en la siguiente línea, o detener la ejecución y retornar. La advertencia indica que hay una ambiguedad en la forma en la que la sentencia de retorno está escrita.

+ +

Advertencias no seran mostradas por retornos sin punto y coma si la sentencia lo sigue:

+ + + +

Ejemplos

+ +

Casos invalidos

+ +
function f() {
+  var x = 3;
+  x += 4;
+  return x;   // return sale de la funcion inmediatamente
+  x -= 3;     // esta linea nunca se ejecutara ; es inalcanzable
+}
+
+function f() {
+  return     // es tratado como `return;`
+    3 + 4;   //la funcion regresa, y esta linea nunca es alcanzada
+}
+
+ +

Casos validos

+ +
function f() {
+  var x = 3;
+  x += 4;
+  x -= 3;
+  return x;  // OK: regreso despues de todas las otras declaraciones
+}
+
+function f() {
+  return 3 + 4  // OK: sin punto y coma regresa la expresion en la misma linea
+}
+
+ +

Ve tambien

+ + diff --git "a/files/es/web/javascript/reference/errors/strict_y_par\303\241metros_complejos/index.html" "b/files/es/web/javascript/reference/errors/strict_y_par\303\241metros_complejos/index.html" new file mode 100644 index 0000000000..2ca6ef8de4 --- /dev/null +++ "b/files/es/web/javascript/reference/errors/strict_y_par\303\241metros_complejos/index.html" @@ -0,0 +1,117 @@ +--- +title: 'SyntaxError: "use strict" no permitida en función con parámetros complejos' +slug: Web/JavaScript/Reference/Errors/Strict_y_parámetros_complejos +tags: + - Error + - JavaScript + - TypeError + - errores +translation_of: Web/JavaScript/Reference/Errors/Strict_Non_Simple_Params +--- +
{{jsSidebar("Errors", "Errores")}}
+ +

La excepción de JavaScript: "'use strict' no permitida en función" ocurre cuando se usa una directiva "use strict" en la parte superior de una función con {{jsxref("Functions/Default_parameters", "parámetros predeterminados", "", 1)}}, {{jsxref("Functions/rest_parameters", "parámetros rest", "", 1)}} o {{jsxref("Operators/Destructuring_assignment" , "Desestructuración de parámetros", "", 1)}}.

+ +

Mensaje

+ +
Edge:
+No se puede aplicar el modo estricto en funciones con una lista de parámetros complejos
+
+Firefox:
+SyntaxError: "use strict" no permitido en la función con parámetro predeterminado
+SyntaxError: "use strict" no permitido en la función con parámetro rest
+SyntaxError: "use strict" no permitido en la función con parámetro de desestructuración
+
+Chrome:
+SyntaxError: directiva ilegal 'use strict' en función con una lista de parámetros complejos
+
+ +

Tipo Error

+ +

{{jsxref("SyntaxError")}}.

+ +

¿Qué salió mal?

+ +

Se escribió una directiva "use strict" en la parte superior de una función que tiene uno de los siguientes parámetros:

+ + + +

No está permitida una directiva "use strict" en la parte superior de dichas funciones según la especificación ECMAScript.

+ +

Ejemplos

+ +

Declaración de función

+ +

En este caso, la función sum tiene los parámetros predeterminados a = 1 y b = 2:

+ +
function sum(a = 1, b = 2) {
+  SyntaxError: 'use strict' no permitida en la función con parámetros predeterminados
+  'use strict';
+  return a + b;
+}
+
+ +

Si la función debe estar en modo estricto, y todo el script o la función adjunta también está bien que esté en modo estricto, puedes mover la directiva "use strict" fuera de la función:

+ +
'use strict';
+function sum(a = 1, b = 2) {
+  return a + b;
+}
+
+ +

Expresión Function

+ +

Una expresión function puede usar otra solución alternativa:

+ +
var sum = function sum([a, b]) {
+  // SyntaxError: "use strict" no permitido en función con parámetros de desestructuración
+  'use strict';
+  return a + b;
+};
+
+ +

Esta se puede convertir a la siguiente expresión:

+ +
var sum = (function() {
+  'use strict';
+  return function sum([a, b]) {
+    return a + b;
+  };
+})();
+
+ +

Función de flecha

+ +

Si una función de flecha necesita acceder a la variable this, puedes usar la función de flecha como función circundante:

+ +
var callback = (...args) => {
+  SyntaxError: "use strict" no permitido en la función con parámetro rest
+  'use strict';
+  return this.run(args);
+};
+
+ +

Esta se puede convertir a la siguiente expresión:

+ +
var callback = (() => {
+  'use strict';
+  return (...args) => {
+    return this.run(args);
+  };
+})();
+
+ +

Ve también

+ + diff --git a/files/es/web/javascript/reference/errors/too_much_recursion/index.html b/files/es/web/javascript/reference/errors/too_much_recursion/index.html new file mode 100644 index 0000000000..91ac6d7973 --- /dev/null +++ b/files/es/web/javascript/reference/errors/too_much_recursion/index.html @@ -0,0 +1,57 @@ +--- +title: 'InternalError: too much recursion' +slug: Web/JavaScript/Reference/Errors/Too_much_recursion +tags: + - Error + - InternalError + - JavaScript + - Recursiva + - Recursividad + - Recursión(2) +translation_of: Web/JavaScript/Reference/Errors/Too_much_recursion +--- +
{{jsSidebar("Errors")}}
+ +

Mensaje

+ +
InternalError: too much recursion
+
+ +

Tipo de error

+ +

{{jsxref("InternalError")}}.

+ +

¿Qué ha ido mal?

+ +

Una función que se llama a sí misma es una función recursiva. Podemos decir que la recursión es análoga a un bucle. Ambos ejecutan el mismo código varias veces y ambos requieren de una condición de fin (para evitar un bucle infinito o recursión infinita). Cuando hay recursión infinita o mucha recursión, JavaScript lanza este error.

+ +

Ejemplos

+ +

Esta función recursiva se ejecuta 10 veces, debido a la condición de salida. 

+ +
function loop(x) {
+  if (x >= 10) // "x >= 10" es la condición de salida
+    return;
+  // hacer cosas
+  loop(x + 1); // llamada recursiva
+}
+loop(0);
+ +

Si establecemos esta condición para un valor muy alto, no funcionará:

+ +
function loop(x) {
+  if (x >= 1000000000000)
+    return;
+  // hacer cosas
+  loop(x + 1);
+}
+loop(0);
+
+// InternalError: too much recursion (demasiada recursión)
+ +

See also

+ + diff --git a/files/es/web/javascript/reference/errors/undefined_prop/index.html b/files/es/web/javascript/reference/errors/undefined_prop/index.html new file mode 100644 index 0000000000..96f7e050de --- /dev/null +++ b/files/es/web/javascript/reference/errors/undefined_prop/index.html @@ -0,0 +1,63 @@ +--- +title: 'ReferenceError: reference to undefined property "x"' +slug: Web/JavaScript/Reference/Errors/Undefined_prop +tags: + - JavaScript + - Modo estricto + - ReferenceError + - errores +translation_of: Web/JavaScript/Reference/Errors/Undefined_prop +--- +
{{jsSidebar("Errors")}}
+ +

Mensaje

+ +
ReferenceError: reference to undefined property "x" (Firefox)
+
+ +

Tipo de error

+ +

Advertencia {{jsxref("ReferenceError")}} únicamente en modo estricto.

+ +

¿Qué salió mal?

+ +

El script intentó acceder a una propiedad no definida en un objeto. Hay dos formas de acceder a las propiedades; vea la página operadores de miembros para aprender más sobre ellas.

+ +

Los errores sobre referencias a propiedades no definidas ocurren únicamente en el modo de código estricto. En el modo no estricto, estos intentos de obtener propiedades no definidas son silenciosamente ignorados.

+ +

Ejemplos

+ +

Casos inválidos

+ +

En este caso, la propiedad bar no está definida, produciéndose un ReferenceError.

+ +
'use strict';
+
+var foo = {};
+foo.bar; // ReferenceError: reference to undefined property "bar"
+
+ +

Casos válidos

+ +

Para evitar este error, es necesario ya sea definir la propiedad bar en el objeto o verificar su existencia antes de leerla; una manera de hacerlo es usar el método {{jsxref("Object.prototype.hasOwnProperty()")}}, como en el siguiente ejemplo:

+ +
'use strict';
+
+var foo = {};
+
+// Definir la propiedad bar
+
+foo.bar = 'luna';
+console.log(foo.bar); // "luna"
+
+// Prueba para asegurarse que bar existe antes de leerla
+
+if (foo.hasOwnProperty('bar')) {
+  console.log(foo.bar);
+}
+ +

Vea también

+ + diff --git a/files/es/web/javascript/reference/errors/unexpected_token/index.html b/files/es/web/javascript/reference/errors/unexpected_token/index.html new file mode 100644 index 0000000000..02cad6eb2f --- /dev/null +++ b/files/es/web/javascript/reference/errors/unexpected_token/index.html @@ -0,0 +1,50 @@ +--- +title: 'SyntaxError: Unexpected token' +slug: Web/JavaScript/Reference/Errors/Unexpected_token +tags: + - JavaScript + - SyntaxError + - errores +translation_of: Web/JavaScript/Reference/Errors/Unexpected_token +--- +
{{jsSidebar("Errors")}}
+ +

Mensaje

+ +
SyntaxError: expected expression, got "x"
+SyntaxError: expected property name, got "x"
+SyntaxError: expected target, got "x"
+SyntaxError: expected rest argument name, got "x"
+SyntaxError: expected closing parenthesis, got "x"
+SyntaxError: expected '=>' after argument list, got "x"
+
+ +

Tipo de error

+ +

{{jsxref("SyntaxError")}}

+ +

¿Que significa el error?

+ +

Se esperaba un constructor específico de JavaScript pero se recibió algo diferente. Puede ser un simple error de tipeo.

+ +

Ejemplos

+ +

Se espera expresión

+ +

Cuando se llama a una función, no se permiten comas al final de los argumentos. JavaScript espera un argumento que puede ser en realidad cualquier tipo de expresión.

+ +
Math.max(2, 42,);
+// SyntaxError: expected expression, got ')'
+
+ +

El error se corrije omitiendo la coma o agregando otro argumento:

+ +
Math.max(2, 42);
+Math.max(2, 42, 13 + 37);
+
+ +

See also

+ + diff --git a/files/es/web/javascript/reference/errors/unexpected_type/index.html b/files/es/web/javascript/reference/errors/unexpected_type/index.html new file mode 100644 index 0000000000..a53f74c95b --- /dev/null +++ b/files/es/web/javascript/reference/errors/unexpected_type/index.html @@ -0,0 +1,61 @@ +--- +title: 'TypeError: "x" is (not) "y"' +slug: Web/JavaScript/Reference/Errors/Unexpected_type +translation_of: Web/JavaScript/Reference/Errors/Unexpected_type +--- +
{{jsSidebar("Errors")}}
+ +

Mensaje

+ +
TypeError: "x" is (not) "y"
+
+Examples:
+TypeError: "x" is undefined
+TypeError: "x" is null
+TypeError: "undefined" is not an object
+TypeError: "x" is not an object or null
+TypeError: "x" is not a symbol
+
+ +

Tipo de error

+ +

{{jsxref("TypeError")}}.

+ +

¿Qué salió mal?

+ +

Tipo inesperado. Esto ocurre amenudo con valores {{jsxref("undefined")}} o {{jsxref("null")}} .

+ +

Además, ciertos métodos, como {{jsxref ("Object.create ()")}} o {{jsxref("Symbol.keyFor()")}}, requieren de un tipo específico, que debe ser proporcionado, ejemplos

+ +

Casos inválidos

+ +
// undefined and null cases on which the substring method won't work
+var foo = undefined;
+foo.substring(1); // TypeError: foo is undefined
+
+var foo = null;
+foo.substring(1); // TypeError: foo is null
+
+
+// Certain methods might require a specific type
+var foo = {}
+Symbol.keyFor(foo); // TypeError: foo is not a symbol
+
+var foo = 'bar'
+Object.create(foo); // TypeError: "foo" is not an object or null
+
+ +

Cómo solucionar el problema

+ +

Para fijar un puntero nulo a indefinidos o valores nulos, puede utilizar el operador typeof, por ejemplo

+ +
if (typeof foo !== 'undefined') {
+  // Ahora sabemos que foo está definido, ahora podemos continuar.
+}
+ +

Ver también

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