Maison  >  Article  >  interface Web  >  Pourquoi ne pouvez-vous pas ajouter de propriétés aux primitives de chaîne en JavaScript ?

Pourquoi ne pouvez-vous pas ajouter de propriétés aux primitives de chaîne en JavaScript ?

DDD
DDDoriginal
2024-10-31 21:36:29636parcourir

Why Can't You Add Properties to String Primitives in JavaScript?

Pourquoi la tentative d'ajout de propriétés aux primitives de chaîne échoue

En JavaScript, les tentatives d'ajout de propriétés aux primitives de chaîne, comme le code ci-dessous, sera inefficace :

<code class="javascript">var test = "test";
test.test = "test inner";
console.log(test.test); // Output: undefined</code>

Types en JavaScript

Pour comprendre cette problématique, il faut appréhender le concept de types en JavaScript. Il existe huit types en JavaScript :

  • Sept types primitifs : Undefined, Null, Boolean, Number, BigInt, String et Symbol
  • Un type non primitif : Object

Les valeurs primitives (par exemple, les chaînes) ne peuvent pas posséder de propriétés, contrairement aux objets.

Affectation de propriétés

Lors de l'attribution d'une propriété à une variable, telle as:

<code class="javascript">foo.bar = 'abc';</code>

Le résultat dépend de la valeur de foo:

  • Undefined ou Null : Error
  • Object : Crée ou attribue à la propriété nommée ' bar'
  • Autres types (par exemple, String) : TypeError en mode strict (pas d'opération en mode lâche)

Solution pour le tri des dates

Dans votre cas spécifique, puisque les dates sont stockées sous forme de chaînes, une solution de contournement pour le tri des dates consiste à utiliser une fonction de comparaison personnalisée dans votre algorithme de tri qui suppose que les dates sont toujours stockées dans le même format. Cette fonction personnalisée peut effectuer une comparaison prenant en compte la date en fonction du format des chaînes de date.

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