getelementbyname - javascript get by tag
javascript check para no nulo (9)
A continuación se muestra un fragmento de código, donde recuperamos un valor de formulario. Antes de seguir procesando, compruebe si el valor no es nulo.
var val = document.FileList.hiddenInfo.value;
alert("val is " + val); // this prints null which is as expected
if (val != null)
{
alert("value is "+val.length); // this returns 4
}
else
{
alert("value* is null");
}
¿Alguna idea de por qué sucede así que ...?
¡Debería utilizar el operador de comparación estricto, not equals
!==
modo que si el usuario ingresa "null"
, no podrá acceder al else
.
Es porque val no es null
, pero contiene ''null''
como una cadena.
Intenta verificar con ''nulo''
if (''null'' != val)
Esto debería funcionar bien ...
if(val!= null)
{
alert("value is "+val.length); //-- this returns 4
}
else
{
alert("value* is null");
}
Esto funcionará:
if (val) {
alert("Not null");
} else {
alert("Null");
}
Hay 3 formas de verificar "no nulo". Mi recomendación es usar la versión estricta, no.
1. Estricta, no versión
if (val !== null) { ... }
The Strict Not Version utiliza el "Algoritmo de comparación de igualdad estricta" http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.6 . El !==
tiene un rendimiento más rápido que el operador !=
Porque el algoritmo de comparación de igualdad estricta no encasilla los valores.
2. No estricta, no versión
if (val != ''null'') { ... }
La versión no estricta utiliza el "Algoritmo de comparación de igualdad abstracta" http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3 . El !=
Tiene un rendimiento más lento, que el operador !==
porque el Algoritmo de comparación de igualdad abstracta escribe los valores.
3. Doble no versión
if (!!val) { ... }
El doble no versión !!
tiene un rendimiento más rápido, que el Strict Not Version !==
y el Non-Strict Not Version !=
( https://jsperf.com/tfm-not-null/6 ). Sin embargo, encasillará los valores de "Falsey" como undefined
y NaN
en False ( http://www.ecma-international.org/ecma-262/5.1/#sec-9.2 ) lo que puede conducir a resultados inesperados, y tiene peor legibilidad porque null
no está explícitamente establecido.
Posiblemente porque el valor de val
es en realidad la cadena "null"
lugar del valor null
.
Si desea poder incluir 0 como valor válido:
if (!!val || val === 0) { ... }
Use !==
as !=
llevará a un mundo de rareza de la tabla de verdad de JavaScript no transitiva.
esto hará el truco para ti
if (!!val) {
alert("this is not null")
} else {
alert("this is null")
}