Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

353
Vistas
En JavaScript, ¿es posible arrojar un error cada vez que una variable está configurada como indefinida?

Encuentro que JavaScript establece una variable igual a indefinida en lugar de arrojar un error hace que la depuración sea mucho más difícil y nunca me ha resultado útil. Por ejemplo:

 var a = ["apple","banana","orange"] var b = a[5]

establecería b en indefinido en lugar de arrojar un error. Solo cuando b se usa más tarde, se arrojará un error, lo que dificultará ver la fuente del error.

Entonces podría verificar el valor de b:

 if(b===undefined){ throw "variable undefined" }

pero no me gustaría hacer esto cada vez que defino o cambio el valor de cualquier variable.

¿Hay alguna forma de hacer que JavaScript arroje automáticamente un error cada vez que una variable se establece en indefinida?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Específicamente para este caso y otros, he preparado una función que toma un objeto y un arreglo de claves/índices y devuelve el valor objetivo, o predeterminado en caso de indefinido. Puedes cambiarlo para que arroje un error.

Simplemente significa que cuando quiera el valor del objeto, use esta sintaxis: gov(obj, [key1, key2]) en lugar de obj[key1][key2] .

 function gov(object, arr_keys, default_value) { if (!typeof arr_keys == "array") { throw new Error("gov arr_keys argument must be an array"); } for (var i = 0; i < arr_keys.length; i++) { var key = arr_keys[i]; if (typeof(key) == "number" || typeof(key) == "string") { if (object && (key in object)) { object = object[key]; } else { // throw your error here. throw new Error("variable undefined"); // or return default_value; } } else { throw new Error("gov key must be string or integer, " + typeof key + " given, key=" + key); } } return object; } var given = { property: "value", nested: { arr: [2, 4, 6] } } console.log("> when key is ok:"); console.log(given["nested"]["arr"][2]) console.log(gov(given, ["nested", "arr", 2], "default value")) console.log("> when value is undefined:"); console.log(given["nested"]["arr"][5]) console.log(gov(given, ["nested", "arr", 5], "default value"))

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda