tag getelementbyname javascript

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") }