Maison > interface Web > js tutoriel > Pourquoi l'attribution de « var name = {} » produit-elle des résultats différents dans différents navigateurs ?

Pourquoi l'attribution de « var name = {} » produit-elle des résultats différents dans différents navigateurs ?

Susan Sarandon
Libérer: 2024-12-20 03:08:08
original
983 Les gens l'ont consulté

Why Does Assigning `var name = {}` Produce Different Results in Different Browsers?

Différence de comportement de la variable "nom" dans les objets JavaScript

En JavaScript, le nom de la variable s'est vu attribuer un rôle spécial en tant que valeur de chaîne dans l'objet fenêtre (window.name). Cette caractéristique unique peut entraîner un comportement inattendu lors de l'utilisation de name en conjonction avec des objets JavaScript.

Considérez l'extrait de code suivant exécuté en tant que script global :

var name = {};
name.FirstName = 'Tom';
alert(name.FirstName);
Copier après la connexion

Dans Chrome, ce code produira "indéfini" lorsque l'alerte est affichée, alors que dans IE et Firefox, la propriété FirstName est accessible et affiche "Tom".

Cette divergence se produit parce que Chrome explicitement contraint window.name à une chaîne. En conséquence, l'affectation var name = {} définit essentiellement le nom de la variable globale (window.name) sur "[object Object]". Puisque name est désormais une primitive, les tentatives de définition de propriétés telles que name.FirstName seront inefficaces.

Pour résoudre ce problème, évitez d'utiliser name comme variable globale. En attribuant un nom de variable différent, vous pouvez vous assurer que le comportement unique associé à window.name n'est pas déclenché par inadvertance.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal