Wat is het juiste om te doen?
if (myObj['key'] == undefined)
of
if (myObj['key'] == null)
of
if (myObj['key'])
Antwoord 1, autoriteit 100%
Probeer de JavaScript inoperator.
if ('key' in myObj)
En het omgekeerde.
if (!('key' in myObj))
Wees voorzichtig!De operator in
komt overeen met alle objectsleutels, inclusief die in de prototypeketen van het object.
Gebruik myObj.hasOwnProperty('key')
om de eigen sleutels van een object te controleren en retourneert alleen true
als key
beschikbaar is op myObj
direct:
myObj.hasOwnProperty('key')
Tenzij je een specifieke reden hebt om de operator in
te gebruiken, levert het gebruik van myObj.hasOwnProperty('key')
het resultaat op waarnaar de meeste code op zoek is.
Antwoord 2, autoriteit 25%
U moet hasOwnProperty
. Bijvoorbeeld:
myObj.hasOwnProperty('myKey');
Opmerking: Als u eSlint gebruikt, kan het bovenstaande u een fout geven voor het schenden van de No-prototype-gebouwd, regel, in dat geval is de oplossing zoals hieronder:
Object.prototype.hasOwnProperty.call(myObj, 'myKey');