Maison >interface Web >js tutoriel >Pourquoi « typeof null » renvoie-t-il « objet » en JavaScript ?

Pourquoi « typeof null » renvoie-t-il « objet » en JavaScript ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-03 22:38:09784parcourir

Why Does `typeof null` Return

Pourquoi typeof Null renvoie-t-il « Objet » bien qu'il ne s'agisse pas d'un type primitif ?

En lisant « Javascript professionnel pour les développeurs Web », vous Je rencontre une perplexité : le chapitre déclare que les primitives incluent null, mais typeof(null) renvoie "object". Comme les primitives sont généralement transmises par valeur et les objets par référence, cela semble contredire la nature primitive de null.

Racine historique de la manipulation de type

Plongeant dans les annales de JavaScript, nous découvrez que cette anomalie provient de l’implémentation initiale du langage. Au début de JavaScript, les valeurs étaient caractérisées par une balise de type et une valeur. Les objets avaient une balise de type 0. Null, représenté par le pointeur NULL (0x00), s'est vu attribuer par inadvertance une balise de type 0.

Remains of the Past

Cette association accidentelle de null avec la balise de type "object" a conduit au résultat typeof(null) erroné. Malgré les mises à jour et les progrès ultérieurs du langage, ce comportement a persisté, entravé par les craintes de perturber le code existant.

Correction proposée mais rejetée

Des efforts ont été déployés pour corriger ce problème. en proposant un correctif facultatif dans ECMAScript, avec l'intention de renvoyer typeof(null) comme "null". Cependant, la proposition a été rejetée. Sa mise en œuvre aurait introduit un changement significatif, brisant potentiellement le code existant qui reposait sur le comportement existant.

Situation actuelle

Par conséquent, le type particulier de comportement (null) demeure intégré dans le tissu de JavaScript. La manipulation de types en JavaScript continue d'être un aspect nuancé et influencé historiquement du langage, illustré par cette bizarrerie durable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn