javascript länge für - Wie überprüfe ich in JavaScript auf Nullwerte?




8 Answers

Javascript ist sehr flexibel in Bezug auf die Suche nach "Null" -Werten. Ich schätze, dass Sie tatsächlich nach leeren Strings suchen. In diesem Fall wird dieser einfachere Code funktionieren:

if(!pass || !cpass || !email || !cemail || !user){

Das wird nach leeren Strings ( "" ), null , undefined , false und den Zahlen 0 und NaN

Bitte beachten Sie, dass es bei der Suche nach Zahlen ein häufiger Fehler ist, 0 mit dieser Methode zu verpassen, und num !== 0 wird bevorzugt (oder num !== -1 oder ~num (Hacky-Code, der auch mit -1 )) für Funktionen, die -1 , zB indexOf )

title tag

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?




Ersetzen Sie einfach das == mit === an allen Stellen.

== ist ein loser oder abstrakter Gleichheitsvergleich

=== ist ein strikter Gleichheitsvergleich

Weitere Informationen finden Sie im MDN-Artikel über Gleichheitsvergleiche und Gleichheit .




Erstens haben Sie eine Rückgabeanweisung ohne einen Funktionskörper. Wahrscheinlichkeiten sind, dass das einen Fehler wirft.

Ein sauberer Weg, um Ihren Scheck zu tun wäre, einfach zu verwenden! Operator:

if (!pass || !cpass || !email || !cemail || !user) {

    alert("fill all columns");

}



Um nach undefined und null in Javascript zu suchen, müssen Sie nur folgendes schreiben:

if (!var) {
        console.log("var IS null or undefined");
} else {
        console.log("var is NOT null or undefined");
}



In JavaScript ist keine Zeichenfolge gleich null .

Vielleicht haben Sie erwartet, dass pass == null wahr ist, wenn pass eine leere Zeichenfolge ist, weil Sie wissen, dass der lose Gleichheitsoperator == bestimmte Arten von Typuszwängen durchführt.

Zum Beispiel ist dieser Ausdruck wahr:

'' == 0

Im Gegensatz === sagt der strikte Gleichheitsoperator === , dass dies falsch ist:

'' === 0

Wenn man bedenkt, dass 0 und 0 gleich sind, könnte man vernünftigerweise annehmen, dass null und null gleich sind. Sie sind es jedoch nicht.

Dieser Ausdruck ist falsch:

'' == null

Das Ergebnis des Vergleichs einer beliebigen Zeichenfolge mit null ist falsch. Daher pass == null und all Ihre anderen Tests sind immer falsch, und der Benutzer erhält nie die Warnung.

Vergleichen Sie jeden Wert mit der leeren Zeichenfolge, um Ihren Code zu korrigieren:

pass === ''

Wenn Sie sicher sind, dass pass eine Zeichenfolge ist, funktioniert auch pass == '' , da nur eine leere Zeichenfolge der leeren Zeichenfolge entspricht. Auf der anderen Seite sagen einige Experten, dass es eine gute Methode ist, immer strikte Gleichheit in JavaScript zu verwenden, es sei denn, Sie möchten die Typenkoerziation, die der lose Gleichheitsoperator durchführt, gezielt ausführen.

Wenn Sie wissen möchten, welche Wertepaare in etwa gleich sind, lesen Sie die Tabelle "Gleichheitsvergleiche" im Mozilla-Artikel zu diesem Thema .




Verbesserung der akzeptierten Antwort durch explizites Überprüfen auf null aber mit einer vereinfachten Syntax:

if ([pass, cpass, email, cemail, user].every(x=>x!==null)) {
    // your code here ...
}

// Test
let pass=1, cpass=1, email=1, cemail=1, user=1; // just to test

if ([pass, cpass, email, cemail, user].every(x=>x!==null)) {
    // your code here ...
    console.log ("Yayy! None of them are null");
} else {
    console.log ("Oops! At-lease one of them is null");
}




Versuche dies:

if (!variable && typeof variable === "object") {
    // variable is null
}



AFAIK in JAVASCRIPT wenn eine Variable deklariert wird, aber keinen Wert zugewiesen hat, ist ihr Typ nicht undefined . So können wir die Variable überprüfen, auch wenn es sich um ein object , das eine Instanz anstelle eines Werts enthält .

Erstellen Sie eine Hilfsmethode zum Überprüfen der Nichtigkeit, die " true zurückgibt und sie in Ihrer API verwendet.

Hilfsfunktion, um zu prüfen, ob die Variable leer ist:

function isEmpty(item){
    if(item){
        return false;
    }else{
        return true;
    }
}

try-catch-Ausnahme-API-Aufruf:

try {

    var pass, cpass, email, cemail, user; // only declared but contains nothing.

    // parametrs checking
    if(isEmpty(pass) || isEmpty(cpass) || isEmpty(email) || isEmpty(cemail) || isEmpty(user)){
        console.log("One or More of these parameter contains no vlaue. [pass] and-or [cpass] and-or [email] and-or [cemail] and-or [user]");
    }else{
        // do stuff
    }

} catch (e) {
    if (e instanceof ReferenceError) {
        console.log(e.message); // debugging purpose
        return true;
    } else {
        console.log(e.message); // debugging purpose
        return true;
    }
}

einige Testfälle:

var item = ""; // isEmpty? true
var item = " "; // isEmpty? false
var item; // isEmpty? true
var item = 0; // isEmpty? true
var item = 1; // isEmpty? false
var item = "AAAAA"; // isEmpty? false
var item = NaN; // isEmpty? true
var item = null; // isEmpty? true
var item = undefined; // isEmpty? true

console.log("isEmpty? "+isEmpty(item));



Related