¿Cómo puedo verificar los valores nulos en JavaScript? Escribí el código a continuación pero no funcionó.
if (pass == null || cpass == null || email == null || cemail == null || user == null) {      
    alert("fill all columns");
    return false;  
}   ¿Y cómo puedo encontrar errores en mis programas de JavaScript?
                    
                        javascript
                                null
                                compare
                                
                    
                    
                        Mahdi_Nine
fuente
                
                fuente

nullen js deben hacerse con el operador estricto===Respuestas:
Javascript es muy flexible con respecto a la comprobación de valores "nulos". Supongo que en realidad estás buscando cadenas vacías, en cuyo caso este código más simple funcionará:
Que comprobará para cadenas vacías (
""),null,undefined,falsey los números0yNaNTenga en cuenta que si está verificando específicamente los números, es un error común omitir
0con este método, ynum !== 0se prefiere (num !== -1o~num(código hacky que también verifica-1)) las funciones que devuelven-1, por ejemploindexOf)fuente
!o!!para probarnullo paraundefineddatos típicamente numéricos a menos que también quiera tirar valores de 0.0...". Creo que esta respuesta es perfectamente apropiada para la pregunta, dado el contexto (lo que infiero es "nombre de usuario, contraseña, correo electrónico"), no están buscando0valores. Sin embargo, dada la popularidad de esta pregunta y respuesta, estoy de acuerdo en que vale la pena mencionarla en la respuesta misma.Para verificar nulo ESPECÍFICAMENTE , usaría esto:
Esta prueba sólo pasar por
nully no pasará por"",undefined,false,0, oNaN.Además, he proporcionado verificaciones absolutas para cada valor "falso" (uno que devolvería verdadero para
!variable).Tenga en cuenta que, para algunas de las comprobaciones absolutas, deberá implementar el uso de
absolutely equals: ===ytypeof.He creado un JSFiddle aquí para mostrar todas las pruebas individuales funcionando
Aquí está el resultado de cada verificación:
Como puede ver, es un poco más difícil de probar
NaN;fuente
===igualdad estricta? Gracias. También para la prueba de NaN puede usarisNaN(value)eso devolverátruesolo si la variable es igual a NaN.variable === nullque no sea del tipo "objeto"? Si no es así, ¿por qué no simplificar el cheque paravariable === nulltirar el segundo conjunto? Gracias.variable === nulllo que acabo de probar aquí en este JSFiddle . La razón por la que también usé `&& typeof variable === 'object' 'no fue solo para ilustrar el hecho interesante de que unnullvalor es typeofobject, sino también para mantener el flujo de las otras verificaciones. Pero sí, en conclusión, puede usarlo de manera seguravariable === null.simplemente reemplace
==con===en todos los lugares.==es una comparación de igualdad suelta o abstracta===es una estricta comparación de igualdadConsulte el artículo de MDN sobre las comparaciones de igualdad y la igualdad para obtener más detalles.
fuente
undefinedque nonull. De lo contrario, dará lugar a una gran cantidad de comportamiento inesperado. En general, si está interesado en ambosnull/undefinedpero no en valores falsos, use==(uno de los pocos casos en los que debería hacerlo).undefinedno esnull: stackoverflow.com/a/5076962/753237Operador de igualdad estricto: -
Podemos verificar nulo por
===Solo usando
ifse evaluará como verdadero si el valor no es :
fuente
Mejora sobre la respuesta aceptada al verificar explícitamente
nullpero con una sintaxis simplificada:fuente
En primer lugar, tiene una declaración return sin un cuerpo de función. Lo más probable es que arroje un error.
¡Una forma más limpia de hacer su verificación sería simplemente usar el! operador:
fuente
puedes usar try catch finalmente
También puedes
throwtus propios errores. Mira esto .fuente
En JavaScript, ninguna cadena es igual a
null.Tal vez esperaba
pass == nullque fuera cierto cuando sepasstrata de una cadena vacía porque sabe que el operador de igualdad suelta==realiza ciertos tipos de coerción de tipo.Por ejemplo, esta expresión es verdadera:
Por el contrario, el operador de igualdad estricta
===dice que esto es falso:Teniendo en cuenta eso
''y0son más o menos iguales, podrías conjeturar razonablemente eso''ynullson más o menos iguales. Sin embargo, no lo son.Esta expresión es falsa:
El resultado de comparar cualquier cadena con
nulles falso. Por lo tanto,pass == nully todas sus otras pruebas son siempre falsas, y el usuario nunca recibe la alerta.Para arreglar su código, compare cada valor con la cadena vacía:
Si está seguro de que
passes una cadena,pass == ''también funcionará porque solo una cadena vacía es más o menos igual a la cadena vacía. Por otro lado, algunos expertos dicen que es una buena práctica usar siempre la igualdad estricta en JavaScript a menos que específicamente desee hacer la coerción de tipo que realiza el operador de igualdad suelta.Si desea saber qué pares de valores son aproximadamente iguales, consulte la tabla "Comparaciones de igualdad" en el artículo de Mozilla sobre este tema .
fuente
para verificar si está indefinido y nulo en javascript solo necesita escribir lo siguiente:
fuente
Este es un comentario sobre la solución de WebWanderer con respecto a la verificación de NaN (todavía no tengo suficiente representante para dejar un comentario formal). La solución se lee como
pero esto fallará para números racionales que se redondearían a
0, comovariable = 0.1. Una mejor prueba sería:fuente
parseIntaparseFloat(que debería haber sido obvio para mí en primer lugar). Evité usar laisNanfunción porque siento que muchos desarrolladores ven funcionesisNaNcomo una especie de "caja mágica" en la que entran los valores y salen los booleanos, y quería que la prueba fuera un poco más profunda. Pero sí, su prueba sugerida funcionará y está perfectamente bien para usar. Lo siento, no noté tu publicación hasta ahora.isNaNtambién, puedo apoyar esa lógica. También está el método Underscore.js, que parece aún más confuso / blackbox, pero vale la pena señalar de todos modos porque se aprovechaNaN !== NaN.Object.prototype.toString.call(variable) === '[object Number]' && variable !== +variableEn realidad, creo que puede necesitar usarlo
if (value !== null || value !== undefined)porque si lo usaif (value)también puede filtrar 0 o valores falsos.Considere estas dos funciones:
En mi situación, sólo necesitaba para comprobar si el valor es nulo e indefinido y que no quería para filtrar
0ofalseo''valores. así que usé la segunda prueba, pero es posible que también necesites filtrarlos, lo que puede hacer que uses la primera prueba.fuente
Encontré otra forma de probar si el valor es nulo:
nullactúa comonumberyobject, al mismo tiempo. Comparaciónnull >= 0onull <= 0resultados entrue. Comparandonull === 0onull > 0onull < 0dará lugar a falsas. Pero comonulltambién es un objeto, podemos detectarlo como nulo.Hice una función más compleja, la naturaleza de la bruja funcionará mejor que el tipo y se me puede decir qué tipos incluir o mantener agrupados
fuente
Hice esta función muy simple que hace maravillas:
La ruta es cualquier cadena de valores que pueda explotar. Lo uso para jQuery / cheerio y objetos y tal.
Ejemplos 1: un objeto simple como este
const testObj = {items: [{ val: 'haya' }, { val: null }, { val: 'hum!' }];};.Pero podría ser un objeto muy grande que ni siquiera hemos hecho. Entonces lo paso por:
Por supuesto, si lo prefiere, puede usar
nullo'No value'... lo que se adapte a sus necesidades.Por lo general, una consulta DOM o un selector jQuery puede arrojar un error si no se encuentra. Pero usando algo como:
fuente
Puede usar el módulo lodash para verificar que el valor sea nulo o indefinido
Enlace de referencia: https://lodash.com/docs/#isNil
fuente
Esto no funcionará en caso de que los valores booleanos provengan de DB para ex:
fuente
AFAIK en JAVASCRIPT cuando una variable se declara pero no tiene un valor asignado, su tipo es
undefined. para que podamos verificar la variable incluso si se tratara deobjectmantener alguna instancia en lugar de valor .cree un método auxiliar para verificar la nulidad que devuelve
truey úselo en su API.función auxiliar para verificar si la variable está vacía:
llamada de API excepcional try-catch:
algunos casos de prueba:
fuente
isEmptyfunción se comporta exactamente igual!. No es necesario inventar una función. Solo hazloif (!pass || !cpass || !email ...). (Que ya se muestra en la respuesta aceptada). Y según el comentario de WebWanderer, la parte central de esta publicación, "llamada de API excepcional try-catch", no parece ser relevante para esta pregunta. Explique su intención: ¿cuándo es útil? ¿Cómo se relaciona eso con la pregunta?Comprobación de condiciones de error:
fuente
Prueba esto:
fuente
if (variable === null)? También alguien ya proporcionó esa respuesta el año pasado: stackoverflow.com/a/27550756/218196 .