En JavaScript, que va retourner 'typeof null'?

Comprendre 'typeof null' en JavaScript

En JavaScript, le mot clé 'typeof' est une fonction intégrée qui renvoie une chaîne de caractères indiquant le type de la donnée passée comme argument. Il est couramment utilisé pour savoir quel type de données manipule le développeur.

La question qu'on se pose est : que retourne typeof null en JavaScript? La réponse est un peu surprenante: elle est object.

Pourquoi 'typeof null' renvoie 'object'?

Au début du développement de JavaScript, une convention a été prise concernant les valeurs de type 'null'. Le type de données 'null' est considéré comme un type d’objet pour une raison historique. Lors de la conception de JavaScript, les valeurs nulles étaient considérées comme des objets sans référence à une valeur. Par conséquent, lorsque vous vérifiez le type de quelque chose qui n'a pas été défini ou qui a la valeur null, JavaScript retourne 'object'.

C'est une erreur reconnue dans le langage JavaScript, mais qui n'a jamais été corrigée pour des raisons de compatibilité en arrière. Voici un exemple de comment cela fonctionne en pratique :

let test = null;
console.log(typeof test); //retourne 'object'

Dans cet exemple, la variable test est définie avec la valeur null. Lorsque nous utilisons typeof test, le résultat affiché est object.

Importante distinction entre 'null' et 'object'

Malgré ce que renvoie typeof, il est important de noter que 'null' n'est pas réellement un objet. En JavaScript, null représente une absence de valeur ou aucune valeur, et c'est différent des objets. Un objet est une collection de paires clé/valeur, tandis que null est simplement une valeur qui représente rien ou absence de valeur.

La distinction est importante car si vous traitez null comme un objet et essayez d'appeler une propriété ou une méthode sur null, cela entraînera une erreur.

En résumé, typeof null en JavaScript retourne object, mais ce n'est pas vraiment un objet. C'est un malentendu courant qui peut créer de la confusion, mais c'est une idiosyncrasie du langage qu'il est bon de connaître et de comprendre pour éviter les erreurs potentielles.

Trouvez-vous cela utile?