2016-04-08 14 views
1

Ich versuchte mit isNaN() und tmp === null, aber keiner funktioniert.Javascript prüft auf NaN/null?

tmp = $("#n").html(); 
if(tmp === undefined || tmp === null){ 
    tmp = 1; 
} 
tmp = parseInt(tmp); 
console.log("tmp: " + tmp); 

Die Konsolenprotokolle tmp: NaN

Ich versuche tmp einen Wert zu geben, wenn es leer ist. Das obige wird von einem anderen Stack-Overflow-Post genommen, aber ich sehe nicht, warum es nicht für mich funktioniert.

+0

NaN bedeutet, dass tmp nicht als Int analysiert werden, wie ' "abc"' ... – Hacketo

Antwort

6

Ich denke, Sie können einfach tmp = $("#n").html() || 1; verwenden, da der Wert eine leere Zeichenfolge sein kann.

Alle Werte einschließlich undefined, null, '' sind sogenannte falsy Werte. Der Operator || wertet es als false aus, geht also zum zweiten Parameter und gibt den Standardwert 1 zurück.

+0

Das hat geklappt! Und eine sehr schlaue Lösung, die ich hinzufügen könnte :) Danke! – PushALU

+1

Große Antwort. Sollte akzeptiert werden !!!!!! – Arjun

1

Haben Sie das versucht?

tmp = $("#n").html(); 
if(!tmp){ 
    tmp = 1; 
} 
tmp = parseInt(tmp); 
console.log("tmp: " + tmp); 
+1

das ist nicht ok: 'if (! Tmp)' macht 'tmp = 1' wenn' tmp = 0' – Lulylulu

+0

@Lulylulu wenn tmp '"0" 'es ist in Ordnung,' "0" 'ist nicht falsy – Hacketo

+0

@Hacketo He bedeutet "0" Nummer ist falsch. –