2017-05-15 3 views
-1

Entfernen value = isNaN(value) ? 0 : value; keine Änderung am Ausgang vornehmen. Was ist der Zweck dieser Linie?Was ist der Zweck der vierten Zeile in diesem Code

function incrementValue() 
    { 
     var value = parseInt(document.getElementById('number').value, 10); 
     value = isNaN(value) ? 0 : value; 
     value++; 
     document.getElementById('number').value = value; 
    } 
+2

auf separate Zeile 3 und 5 ... und auch sicher, 'zu machen value' ist ein' Zahl "- Weißt du was [isNaN] (https: //developer.mozilla.org/de/docs/Web/JavaScript/Referenz/Global_Objects/isNaN) ist? –

+0

Die Zeile sollte auch auf leere Zeichenfolge testen: 'Wert = Wert ==" "|| isNaN (Wert)? 0: value; ' – mplungjan

+2

@JaromandaX:' value' wird niemals 'null' mit dem obigen Code sein. –

Antwort

0

überprüft, ob der Parameter value Nicht-a-Number (NaN).

  • Wenn es in die Tat ein NaN es setzt den Wert auf 0.

  • Andernfalls es seinen ursprünglichen Wert legt, indem die gleichen value Parameter zurück.

Das Format

<condition>?<truth scenario>:<false scenario> 

Sie hier sehen, ist eine Abkürzung für:

if (<condition>) { 
     <truth scenario> 
    } else { 
     <false scenario> 
    } 
-1

NaN bedeutet: keine Zahl.

Wenn Sie versuchen, mit diesem Wert (NaN) zu berechnen, erhalten Sie JavaScript fatale Fehler, so dass diese Überprüfung dies verhindern soll.

Übrigens wird dieses Skript nicht richtig funktionieren, weil Sie den "Wert" bei jedem Aufruf dieser Funktion überschreiben werden.

0

NaN steht für Not a Number, was einen ungültigen numerischen Wert darstellt. Wenn Sie eine ungültige Nummer in das Feld number eingeben (z. B. four anstelle von 4), wird bei der Analyse mit parseInt der Wert NaN zurückgegeben.

Die vierte Zeile Ihres Codes value = isNaN(value) ? 0 : value; wird diesen NaN Wert in eine 0 umwandeln, so dass arithmetische Operationen damit durchgeführt werden können.

0

Sehen Sie die console.log .its zeigt, was innerhalb passiert. Wenn Sie den alphabetischen Wert eingeben. isNaN() Validierung seiner der Wert NaN den Wert als 0 zurückkehren Wenn nicht NaN geben den Wert der Eingabe ist

function incrementValue() 
 
    { 
 
     var value = parseInt(document.getElementById('number').value, 10); 
 
     console.log(value) 
 
     value = isNaN(value) ? 0 : value; 
 
     value++; 
 
     document.getElementById('number').value = value; 
 
    }
<input id="number" value="sx"> 
 
<button onclick="incrementValue()"">valid</button>

1

Es ist wie ein Filter sucht nur numerische Werte in einem Eingangselement immer und Schritt der Wert.

Grundsätzlich gibt die Überprüfung Null zurück, wenn eine NaN von ParseInt zurückgegeben wird.

Sie könnten ein logisches ODER verwenden, um falsche Werte zu verhindern, und stattdessen eine Null verwenden.

function incrementValue() { 
 
    var value = parseInt(document.getElementById('number').value, 10) || 0; 
 
    value++; 
 
    document.getElementById('number').value = value; 
 
}
<input type="text" id="number" onchange="incrementValue()">

Verwandte Themen