Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

99
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda