Gaurav
Posible duplicado:
Detectar una propiedad de objeto indefinida en JavaScript
javascript indefinido comparar
Cómo podemos agregar un cheque para una variable indefinida, como:
function A(val) {
if (val == undefined)
// do this
else
// do this
}
Visión
La biblioteca JQuery se desarrolló específicamente para simplificar y unificar ciertas funciones de JavaScript.
Sin embargo, si necesita verificar una variable contra undefined
valor, no hay necesidad de inventar ningún método especial, ya que JavaScript tiene un typeof
operador, que es simple, rápido y multiplataforma:
if (typeof value === "undefined") {
// ...
}
Devuelve una cadena que indica el tipo de variable u otro operando no evaluado. La principal ventaja de este método, en comparación con if (value === undefined) { ... }
es eso typeof
nunca generará una excepción en caso de que sea variable value
no existe.
-
@nahum jQuery es una biblioteca de JavaScript. Este no es un lenguaje de programación diferente.
– Visión
31 de mayo de 2013 a las 17:47
-
lol omg realmente estas comentando esto?? Sé que es el mismo hombre. Pero supongo que quiere saber si existe algún tipo de método en jQuery como $.isUndefined(Object); y devolver el valor verdadero o falso. typeof es solo javascript sin ningún marco.
– ncúbica
31 de mayo de 2013 a las 17:49
-
Uno de mis problemas era: si estás haciendo algo como esto
("#myId")
asegúrese de lo que realmente necesita: a.typeof ("#myId")=== "undefined"
b. O:typeof ("#myId").val() === "undefined"
– Alberici
26 de diciembre de 2014 a las 22:54
-
@Alberici
("#myId")
no es otra cosa que un cuerda constante. Siempre estará definido y tendrá un tipo de"string"
. Si te refieres a un verdadero objeto jQuery creado con$("#myId")
siempre se definirá como"object"
(si tiene jQuery vinculado correctamente). Existencia de un elemento DOM con IDmyId
se puede evaluar conif ($("#myId").length > 0) { ... }
mientras que verificar si su valor no está vacío se puede hacer conif ($("#myId").val()) { ... }
. Ninguna de estas cláusulas se relaciona realmente con el tema de esta pregunta.– Visión
27 de diciembre de 2014 a las 1:00
-
@ user3284463 Como se menciona en la respuesta, simple
value === undefined
generará una excepción sivalue
variable no existe. Así que depende completamente de ti qué usar en la vida real.– Visión
27 de junio de 2016 a las 11:59
En este caso, puede utilizar un === undefined
comparación: if(val === undefined)
Esto funciona porque val
siempre existe (es un argumento de función).
Si quisiera probar una variable arbitraria que no es un argumento, es decir, podría no estar definida en absoluto, tendría que usar if(typeof val === 'undefined')
para evitar una excepción en caso val
no existía
Jignesh Rajput
Tenga en cuenta que typeof siempre devuelve una cadena y no genera un error si la variable no existe en absoluto.
function A(val){
if(typeof(val) === "undefined")
//do this
else
//do this
}
-
Para la comparación de cadenas, creo que necesitamos usar
===
en vez de==
– Sreeram
18 mayo 2012 a las 13:20
-
@Sreeram, ambos hacen una comparación, solo que de diferentes maneras… esto funcionará bien
– Raddrick
18 mayo 2012 a las 13:22
Sé que llegué tarde a responder la función, pero jquery tiene una función de compilación para hacer esto
if(jQuery.type(val) === "undefined"){
//Some code goes here
}
Consulte el documento jquery API de jquery.type https://api.jquery.com/jQuery.type/ por lo mismo.
Puede usar la técnica abreviada para verificar si no está definido o es nulo
function A(val)
{
if(val || "")
//do this
else
//do this
}
Espero que esto te ayudará
Sridhar K.
cuando estoy probando”typeof obj === undefined
“, la alert(typeof obj)
regresando object
, aunque obj no está definido. Dado que obj es un tipo de Object
esta regresando Object
no undefined
.
Entonces, después de horas de prueba, opté por la siguiente técnica.
if(document.getElementById(obj) !== null){
//do...
}else{
//do...
}
No estoy seguro de por qué la primera técnica no funcionó. Pero terminé mi trabajo usando esto.
Yoosaf Abdula
Si tiene los nombres del elemento y no la identificación, podemos lograr la verificación indefinida en todos los elementos de texto (por ejemplo) como se muestra a continuación y llenarlos con un valor predeterminado, digamos 0.0:
var aFieldsCannotBeNull=['ast_chkacc_bwr','ast_savacc_bwr'];
jQuery.each(aFieldsCannotBeNull,function(nShowIndex,sShowKey) {
var $_oField = jQuery("input[name=""+sShowKey+""]");
if($_oField.val().trim().length === 0){
$_oField.val('0.0')
}
})
Posible duplicado de Detectar una propiedad de objeto indefinida
– Corazón
14 de julio de 2018 a las 13:54