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

98
Vistas
Manera elegante de volver de intentar... atrapar - Javascript

Manera elegante de devolver nulo. No quiero devolverlo dos veces.

Opción 1:

 function readSessionStorage(key) { try { if (typeof window !== 'undefined') { return JSON.parse(window.sessionStorage.getItem(key)); } return null; } catch { return null; } }

Opcion 2:

 function readSessionStorage(key) { try { return JSON.parse(window.sessionStorage.getItem(key)); } catch { return null; } }

Opción 3: Si elegimos esta opción, ¿por qué deberíamos hacer esto?

 function readSessionStorage(key) { try { if (typeof window !== 'undefined') { return JSON.parse(window.sessionStorage.getItem(key)); } } catch {} return null; }

¿Por qué necesito hacer esto?

Recibo DOMException si trato de obtener window.sessionStorage y, por lo tanto, necesito usar try...catch .

 function readSessionStorage(key) { if (typeof window !== 'undefined' || !window.sessionStorage) { return JSON.parse(window.sessionStorage.getItem(key)); } return null; }

Código original:

 function readSessionStorage(key) { if (typeof window !== 'undefined') { return JSON.parse(window.sessionStorage.getItem(key)); } return null; }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Bueno, eso es extraño. ¿Sin respuesta en siete meses? Bueno, yo mismo estaba buscando algo como esto y no pude encontrar una solución elocuente. Creé el mío propio.


Editar : después de más trabajo, ¡descubrí que los operadores de seguridad nula existen en JS! ¡Hurra! La siguiente función sigue siendo bastante útil, quizás más ahora, ya que uno puede usar el operador de seguridad para obtener el valor preciso deseado y luego manejarlo correctamente.


Considere usar una función similar a esta:

 const defineCheck = (item, defaultVal = '') => { try { return (item !== null && item !== undefined) ? item : defaultVal; } catch { return defaultVal; } }

Es posible que esto no se ajuste exactamente a sus necesidades, pero puede hacer su función como lo desee. Esto mantendrá el desorden fuera de su negocio importante o de la lógica de la interfaz de usuario, para que usted y los demás puedan concentrarse en lo que es importante.

Ejemplo de uso (si se sabe que la cuenta tiene un valor esperado):

 tempForm.ExpirationDate = defineCheck(account.expirationDate); tempForm.LicenseType = defineCheck(account.licenseType, 'Nada');

Con seguridad nula:

 tempForm.ExpirationDate = defineCheck(account?.license?.expireDate); tempForm.LicenseType = defineCheck(account?.license?.licenseType, 'Nada');

Espero que usted y otros encuentren esto útil, o mejor aún, compartan una forma mucho mejor de lidiar con este problema. Esperaba que el operador de verificación de seguridad nula de C# llegara a JS, pero no hubo suerte (p. ej., "¿cuenta?.licencia?.licenseType ?? 'Nada'")

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