Heim  >  Artikel  >  Web-Frontend  >  Warum können Sie in JavaScript keine Eigenschaften zu String-Primitiven hinzufügen?

Warum können Sie in JavaScript keine Eigenschaften zu String-Primitiven hinzufügen?

DDD
DDDOriginal
2024-10-31 21:36:29636Durchsuche

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

Warum der Versuch, Eigenschaften zu String-Primitiven hinzuzufügen, fehlschlägt

In JavaScript werden Versuche, Eigenschaften zu String-Primitiven hinzuzufügen, wie zum Beispiel der folgende Code, wird unwirksam sein:

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

Typen in JavaScript

Um dieses Problem zu verstehen, muss man das Konzept der Typen in JavaScript verstehen. Es gibt acht Typen in JavaScript:

  • Sieben primitive Typen: Undefiniert, Null, Boolean, Number, BigInt, String und Symbol
  • Ein nicht-primitiver Typ: Object

Primitive Werte (z. B. Zeichenfolgen) können keine Eigenschaften besitzen, Objekte hingegen schon.

Eigenschaftszuweisung

Beim Zuweisen einer Eigenschaft zu einer Variablen, z als:

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

Das Ergebnis hängt vom Wert von foo ab:

  • Undefiniert oder Null: Fehler
  • Objekt: Erstellt oder weist die benannte Eigenschaft zu ' bar'
  • Andere Typen (z. B. String): TypeError im strikten Modus (No-Op im Loose-Modus)

Lösung zum Sortieren von Daten

Da Datumsangaben in Ihrem speziellen Fall als Zeichenfolgen gespeichert werden, besteht eine Problemumgehung zum Sortieren von Datumsangaben darin, eine benutzerdefinierte Vergleichsfunktion in Ihrem Sortieralgorithmus zu verwenden, die davon ausgeht, dass Datumsangaben immer im gleichen Format gespeichert werden. Diese benutzerdefinierte Funktion kann einen datumsbezogenen Vergleich basierend auf dem Format der Datumszeichenfolgen durchführen.

Das obige ist der detaillierte Inhalt vonWarum können Sie in JavaScript keine Eigenschaften zu String-Primitiven hinzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn