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

184
Vistas
el valor no está definido y se aplica un cheque en el javascript

el problema que tengo es que el segmento no está definido: no se pueden leer las propiedades de undefined (leyendo 'segmento') ¿cómo puedo escribir un código para usar si el valor no está definido o es un error, simplemente use $("#x").val().slice(3,5)

intenté así pero parece que no funciona

 w = (typeof x.val() !== 'undefined') ? $("#x").val().slice(3,5) : 0;
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

x.val() y $("#x").val() son cosas muy diferentes, a menos que suceda que x sea el resultado de una llamada anterior a $("#x") .

La única vez que el val de jQuery devuelve undefined es si lo llama en un conjunto vacío (lo que significaría que no hay ningún elemento con id="x" en el DOM cuando hace $("#x") ). La manera simple de hacer esto es tomar el valor y luego hacer la verificación:

 const val = x.val(); // Or `= $("#x").val()`, whatever is the one you actually want w = typeof val !== "undefined" ? val.slice(3,5) : 0;

Sin embargo, tenga en cuenta que está asignando una cadena a w en un caso pero un número en el otro. Por lo general, es mejor que sea consistente, ya sea que use siempre una cadena o siempre use un número.

about 4 years ago · Juan Pablo Isaza Denunciar

0

En JavaScript, tanto el valor undefined como las cadenas vacías se consideran falsos y se evaluarán como falsos si se usan como argumentos booleanos. Puede usar este comportamiento para crear comprobaciones nulas muy simples con algunos paréntesis.

 w = ($('#x').val() || '').slice(3,5) || 0;

Este código primero agregará una verificación segura indefinida/nula a su operación $(...).val() usando una operación lógica o ( || ). Entonces, si no se encuentra ningún valor, se devolverá una cadena vacía en su lugar.

Una vez hecho esto, el segmento se aplicará al valor o a una cadena vacía. Si el resultado del segmento es una cadena vacía, se devuelve un 0 en su lugar.

Tenga en cuenta que en su ejemplo inicial también está intentando abordar la variable x en lugar de usar $('#x') . Estos no son intercambiables a menos que primero asigne var x = $('#x') .

about 4 years ago · Juan Pablo Isaza Denunciar

0

Considera lo siguiente.

 $(function() { var w; $("#btn").click(function() { var x = $("#x").val(); w = (x !== undefined || x.length >= 4 ? x.slice(3, 5) : "0"); console.log(w); }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div> <input type="text" id="x"> <button id="btn">Go</buton> </div>

Esto comprueba si x no está undefined o si la longitud de la cadena es lo suficientemente larga para cortarla.

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