Wie überprüfe ich in JavaScript auf Nullwerte?javascript


Answers

Um nach NULL zu suchen , würden Sie folgendes verwenden:

if(variable === null && typeof variable === "object")

... oder einfacher:

if(variable === null)

Dieser Test wird NUR für null und nicht für "" , undefined , false , 0 oder NaN .

Der Rest ist eine Antwort auf den Kommentar von anorganika: Ja, Sie können jede einzelne Prüfung überprüfen.

Sie müssen die Verwendung der absolutely equals: === und typeof , um absolut sicher mit Ihren Schecks zu implementieren.

Ich habe hier ein JSFiddle erstellt , um alle einzelnen Tests anzuzeigen

Hier ist die gesamte Ausgabe der Tests:

Null Test:

if(variable === null && typeof variable === "object")

- variable = ""; (false) typeof variable = string

- variable = null; (true) typeof variable = object

- variable = undefined; (false) typeof variable = undefined

- variable = false; (false) typeof variable = boolean

- variable = 0; (false) typeof variable = number

- variable = NaN; (false) typeof variable = number



Empty String Test:

if(variable === "" && typeof variable === "string")

- variable = ""; (true) typeof variable = string

- variable = null; (false) typeof variable = object

- variable = undefined; (false) typeof variable = undefined

- variable = false; (false) typeof variable = boolean

- variable = 0; (false) typeof variable = number

- variable = NaN; (false) typeof variable = number




Undefined Test:

if(variable === undefined && typeof variable === "undefined")

- variable = ""; (false) typeof variable = string

- variable = null; (false) typeof variable = object

- variable = undefined; (true) typeof variable = undefined

- variable = false; (false) typeof variable = boolean

- variable = 0; (false) typeof variable = number

- variable = NaN; (false) typeof variable = number



False Test:

if(variable === false && typeof variable === "boolean")

- variable = ""; (false) typeof variable = string

- variable = null; (false) typeof variable = object

- variable = undefined; (false) typeof variable = undefined

- variable = false; (true) typeof variable = boolean

- variable = 0; (false) typeof variable = number

- variable = NaN; (false) typeof variable = number



Zero Test:

if(variable === 0 && typeof variable === "number")

- variable = ""; (false) typeof variable = string

- variable = null; (false) typeof variable = object

- variable = undefined; (false) typeof variable = undefined

- variable = false; (false) typeof variable = boolean

- variable = 0; (true) typeof variable = number

- variable = NaN; (false) typeof variable = number



NaN Test:

if(!parseFloat(variable) && variable != 0 && typeof variable === "number")

- variable = ""; (false) typeof variable = string

- variable = null; (false) typeof variable = object

- variable = undefined; (false) typeof variable = undefined

- variable = false; (false) typeof variable = boolean

- variable = 0; (false) typeof variable = number

- variable = NaN; (true) typeof variable = number

Wie Sie sehen können, ist es etwas schwieriger, gegen NaN zu testen;

Question

Wie kann ich in JavaScript nach Nullwerten suchen? Ich habe den Code unten geschrieben, aber es hat nicht funktioniert.

if (pass == null || cpass == null || email == null || cemail == null || user == null) {      

    alert("fill all columns");
    return false;  

}   

Und wie finde ich Fehler in meinen JavaScript-Programmen?




Strict Gleichheitsoperator: -

Wir können null mit === überprüfen

if ( value === null ){

}

Nur mit, if

if( value ) {

}

wird als wahr ausgewertet, wenn der Wert nicht ist :

  • Null
  • nicht definiert
  • NaN
  • leerer String ("")
  • falsch
  • 0



Sie können versuchen, schließlich zu fangen

 try {
     document.getElementById("mydiv").innerHTML = 'Success' //assuming "mydiv" is undefined
 } catch (e) {

     if (e.name.toString() == "TypeError") //evals to true in this case
     //do something

 } finally {}   

Sie können auch Ihre eigenen Fehler throw . Sieh das .




Dies ist ein Kommentar zu der Lösung von WebWanderer bezüglich der Überprüfung auf NaN (ich habe noch nicht genügend Rep für einen formellen Kommentar). Die Lösung lautet wie folgt

if(!parseInt(variable) && variable != 0 && typeof variable === "number")

aber dies wird für rationale Zahlen fehlschlagen, die auf 0 runden würden, wie variable = 0.1 . Ein besserer Test wäre:

if(isNaN(variable) && typeof variable === "number")



Unterstrich: _.isNull

_.isNull(null);
=> true
_.isNull(undefined);
=> false

jQuery: jQuery.type

jQuery.type( null ) === "null"



Spannungsfreie Lösung

Verwenden Sie jquery , um zu prüfen, ob das object leer ist . dann können Sie es vernichten indem Sie einfach hinzufügen !($.isEmptyObject(data[i].geo))

if (!($.isEmptyObject(data[i].geo))) {

    var computed_latitude = data[i].geo.coordinates[0];
    var computed_longitude = data[i].geo.coordinates[1];
    myLatlng = {lat: computed_latitude, lng: computed_longitude};
    var marker = new google.maps.Marker({
        position: myLatlng,
        map: map,
        title: data[i].text
    });
}



Sie können diese wiederverwendbare is-nil-Open-Source-Komponente auch verwenden, die feststellt, ob der val Verweis null oder nicht definiert ist, und gibt einen booleschen Wert zurück.

Beispiele:

isNil(null) // => true
isNil('') // => true

Es wird false zurückgegeben, selbst wenn eine leere Zeichenfolge angegeben wird.