Istnieją trzy sposoby sprawdzenia, czy nie ma wartości „niezerowe”. Moim zaleceniem jest użycie wersji Strict Not.
1. Ścisła nie wersja
if (val !== null) { ... }
Wersja Strict Not korzysta z „algorytmu ścisłego porównywania równości” http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.6 . !==Ma większą wydajność, niż !=operator ścisłej równości, ponieważ algorytm porównanie nie typecast wartości.
2. Nieostra nie wersja
if (val != 'null') { ... }
Wersja nieścisła korzysta z algorytmu „Abstrakcyjnego porównania równości” http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3 . !=Ma mniejszą wydajność, niż !==operatora Ponieważ algorytm Streszczenie Równość Porównanie typecasts wartości.
3. Podwójnie nie wersja
if (!!val) { ... }
Wersja Double Not !!ma wyższą wydajność niż wersja Strict Not !==i Non-Strict Not !=( https://jsperf.com/tfm-not-null/6 ). Jednak zapisuje wartości „Falsey”, takie jak undefinedi NaNna False ( http://www.ecma-international.org/ecma-262/5.1/#sec-9.2 ), co może prowadzić do nieoczekiwanych wyników i ma gorszą czytelność, ponieważ nullnie jest wyraźnie określone.