Hoe controleer je of een variabele niet null is?

Ik weet dat hieronder de twee manieren in JavaScript zijn om te controleren of een variabele niet nullis, maar ik weet niet wat ik het beste kan gebruiken.

Moet ik doen:

if (myVar) {...}

of

if (myVar !== null) {...}

Antwoord 1, autoriteit 100%

Ze zijn niet gelijkwaardig. De eerste voert het blok uit dat volgt op de if-instructie als myVartruthyis (dwz evalueert tot truein een voorwaardelijke ), terwijl de tweede het blok uitvoert als myVareen andere waarde is dan null.

De enige waarden die niet waarheidsgetrouw zijn in JavaScript zijn de volgende (ook wel falsywaarden genoemd):

  • null
  • undefined
  • 0
  • ""(de lege tekenreeks)
  • false
  • NaN

Antwoord 2, autoriteit 18%

Hier is hoe u kunt testen of een variabele niet NULL is:

if (myVar !== null) {...}

het blok wordt uitgevoerd als myVar niet null is.. het wordt uitgevoerd als myVar niet gedefinieerd of onwaar is of 0of NaNof iets anders..


Antwoord 3, autoriteit 11%

Lees dit bericht: http://enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-2/

Het heeft een aantal leuke tips voor JavaScript in het algemeen, maar één ding wordt wel vermeld, namelijk dat je moet controleren op null zoals:

if(myvar) { }

Het vermeldt ook wat als ‘falsey’ wordt beschouwd, wat u zich misschien niet realiseert.


Antwoord 4, autoriteit 8%

  • code in uw if(myVar) { code }wordt NIET alleen uitgevoerd wanneer myVargelijk is aan: false, 0, "", null, undefined, NaNof u heeft de variabele myVarnooit gedefinieerd (en daarnaast de uitvoering van de code en de worp-uitzondering).
  • code in uw if(myVar !== null) {code}wordt NIET alleen uitgevoerd wanneer myVargelijk is aan nullof je hebt het nooit gedefinieerd (geeft uitzondering).

Hier heb je alle (src)

als

==(zijn ontkenning !=)

===(de ontkenning !==)


Antwoord 5, autoriteit 2%

Er is nog een ander mogelijk scenario dat ik zojuist ben tegengekomen.

Ik heb een ajax-aanroep gedaan en kreeg gegevens terug als null, in een tekenreeksindeling. Ik moest het als volgt controleren:

if(value != 'null'){}

Dus null was een tekenreeks die “null” las in plaats van echt nul te zijn.

EDIT:het moet duidelijk zijn dat ik dit niet verkoop zoals het moetworden gedaan. Ik had een scenario waarin dit de enige manier was waarop het kon worden gedaan. Ik weet niet zeker waarom… misschien presenteerde de man die de back-end schreef de gegevens verkeerd, maar hoe dan ook, dit is het echte leven. Het is frustrerend om te zien dat dit wordt weggestemd door iemand die begrijpt dat het niet helemaal juist is, en vervolgens omhoog wordt gestemd door iemand die het echt helpt.


Antwoord 6

Soms is het beter om voorbereid te zijn als het niet eens gedefinieerd was.
Hiervoor gebruikte ik typeof

if(typeof(variable) !== "undefined") {
    //it exist
    if(variable !== null) {
        //and is not null
    }
    else {
        //but is null
    }
}
else {
    //it doesn't
}

Antwoord 7

als myVarnull is, wordt het blok uitgevoerd als het anders niet wordt uitgevoerd.

if (myVar != null) {...}


Antwoord 8

if (0) betekent false, if (-1, of een ander getal dan 0) betekent true. volgende waarden zijn niet waarheidsgetrouw, null, ongedefinieerd, 0, “” (lege tekenreeks), onwaar, NaN

gebruik nooit een nummertype zoals id als

if (id) {}

voor id-type met mogelijke waarde 0, kunnen we if (id) {} niet gebruiken, want als (0) betekent onwaar, ongeldig, wat we willen, betekent geldig als waar id-nummer.

Dus voor het id-type moeten we het volgende gebruiken:

if ((Id !== undefined) && (Id !== null) && (Id !== "")) {
} else {
}

voor een ander tekenreekstype kunnen we if (tekenreeks) {} gebruiken, omdat null, ongedefinieerde, lege tekenreeks allemaal op false wordt geëvalueerd, wat correct is.

if (string_type_variable) { }

Antwoord 9

De twee voorwaardelijke uitspraken die u hier opsomt, zijn niet beter dan elkaar. Uw verbruik is afhankelijk van de situatie. Je hebt trouwens een typfout in het 2e voorbeeld. Er mag maar één isgelijkteken achter het uitroepteken staan.

Het eerste voorbeeld bepaalt of de waarde in myVarwaar is en voert de code uit binnen de {…}

Het 2e voorbeeld evalueert of myVarniet gelijk is aan null en als dat waar is, wordt uw code uitgevoerd binnen de {…}

Ik stel voor om voorwaardelijke uitspraken te bekijken voor meer technieken. Als je ze eenmaal kent, kun je beslissen wanneer je ze nodig hebt.

Other episodes