Il n'existe aucun moyen d'intercepter les accès directs aux propriétés dans JavaScript. Lorsqu'une propriété n'a pas été définie, le résultat sera undefined
. Bien que null
et undefined
sont généralement considérés comme la même chose, ils sont en fait des entités différentes.
En JavaScript undefined
signifie aucune valeur et null
signifie une valeur de null. Dans certains cas, vous pouvez mélanger undefined et null. Par exemple, lorsque vous utilisez l'opérateur ==
, ils sont équivalents ((null == undefined) === true
). En utilisant l'opérateur sans contrainte, ===
, ils sont différents ((null === undefined) === false
).
Vous pouvez utiliser ceci à votre avantage. Alors que la plupart des gens prétendent que vous devez utiliser l'opérateur d'égalité sans contrainte (===
), il est préférable de mettre null
et undefined
dans le même compartiment, à moins que vous ne vous souciez réellement de la différence entre les deux. Là où ça devient compliqué, c'est que undefined
est une propriété de l'objet global et peut donc recevoir une nouvelle valeur.
Si quelqu'un devait dire undefined = 'donkey'
alors null == undefined
commencerait à retourner false
. En pratique, ce n'est presque jamais un problème puisque la plupart des gens ne sont pas assez stupides pour réaffecter la valeur de indéfini.
Ainsi, dans une sorte de rond-point chemin, vous ne avez pas besoin de propriété piège accès à retourner null
pour les propriétés qui n'ont pas été établies tant que vous comparez le résultat à l'aide null
==
.
Pourquoi voulez-vous explicitement à « nulle »? Est-ce que "indéfini" ne suffit pas? –
Je pensais que mon application ne prend pas de valeur indéfinie, j'ai juste essayé, non défini fait le même travail, donc je suppose que cela peut être fermé maintenant. Merci à tous. – Nominee