Ajout de propriétés nommées aux tableaux : une bizarrerie de JavaScript
En JavaScript, les tableaux peuvent être manipulés de manière inattendue, y compris la possibilité d'ajouter des propriétés nommées propriétés comme s’il s’agissait d’objets. Cela soulève la question : existe-t-il une différence fondamentale entre déclarer un tableau avec des propriétés nommées à l'aide de crochets et un objet littéral ?
La réponse courte est : Oui, il y a une différence.
Bien que les deux méthodes se comportent superficiellement de la même manière et renvoient le type « objet » lorsqu'elles sont vérifiées avec typeof(), elles diffèrent par leur nature sous-jacente. Les tableaux sont destinés aux données indexées numériquement, tandis que les objets sont conçus pour les clés non numériques.
Pour illustrer cette distinction, considérons ce qui suit :
var myArray = Array(); myArray['A'] = "Athens"; myArray['B'] = "Berlin"; alert(myArray.length);
Ce code affichera « 0 », alors qu'on pourrait s'attendre à ce qu'il affiche « 2 ». En effet, les propriétés nommées ajoutées au tableau n'affectent pas sa propriété de longueur. Au lieu de cela, ils sont traités comme des propriétés supplémentaires sur l'objet tableau.
En revanche, un littéral d'objet déclaré avec des propriétés nommées refléterait correctement sa longueur :
var myObject = {'A': 'Athens', 'B': 'Berlin'}; alert(myObject.length); // This would display '2'
Par conséquent, bien que cela soit possible ajouter des propriétés nommées aux tableaux est considéré comme un "abus" et doit être évité. Pour les touches non numériques, il est préférable d'utiliser un objet à la place.
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!