Deus Figendi: string vs. richtext

Beitrag lesen

Guten Morgen,
seit ich vor einigen Jahren begonnen habe mich mit JavaScript zu beschäftigen und feststellte, dass diese Sprache gar nicht so böse ich wie ich zuvor glaubte brennt mir diese Frage unter den Nägeln:
Warum zum Henker kann man Zeichenketten formatieren (und ähnliches)?
Ich beziehe mich auf das http://de.selfhtml.org/javascript/objekte/string.htm@title=String-Objekt, welches allerlei Methoden mit sich bringt, die sich auf RichText beziehen.
Was ich meine ist: Ich kenne aus anderen Sprachen, dass es den Datentyp "Richtext" gibt (den ich nicht gerne verwende, weil die Handhabung oft recht kompliziert und verwirrend ist). Und es gibt natürlich String/Zeichenkette.
JavaScript scheint diese Dinge zu mischen also beide Datentypen (Klassen) in einer zu vereinen. Gibt mir aber gleichzeitig keine Methode an die Hand (soweit ich das bisher sehe) nur auf die Zeichenkette zuzugreifen ohne deren Formatierungen ("strip").

Um es an einem Beispiel festzumachen: toLowerCase() ist eine typische Funktion (oder hier: Methode), die man auf Zeichenketten anwendet.
sub() hingegen ist es idR nicht (Ausnahmen mögen Zeichen sein, die es im Unicode nochmal extra als tiefergestellt gibt).

Mein Problem bei der Sache ist halt, dass ich das gedanklich nicht auseinander bekomme. Woher weiß ich ob ich formatierten Text oder eine reine Zeichenkette erhalte, wenn ich z.B. einen Textknoten bzw. dessen Inhalt ergreife.

Und wie gesagt, warum bietet mir "String" eine Methode namens "blink" anstatt dessen Elternelement.

Und was bedeutet das alles außerhalb des HTML/XML etc. -Kontext? Ich habe z.B. auch eine JS-Engine für mein Chatprogramm und das arbeitet nicht mit XML. (Formatierungen werden IRC-typisch mit Steuerzeichen geregelt).

Kann mir irgendjemand helfen dieses Problem zu lösen, also das Ganze einfach gedanklich in Ordnung zu bringen? Gibt es eine Denk-Krücke, die mir das Verständnis dafür erleichtert?

Noch ein kleines Beispiel:

  
<?xml  
 <!-- xml-Deklaration, namensraum, PiPaPo... -->  
 <rootelement> <!-- Sagen wir es wäre ein Integer-Element. -->  
  JavaScript-String-Objekt mit Formatierung, welches aber ein Integer darstellt. Sagen wir "5".italics(); oder so.  
 </rootelement>  
?>  
Was ist das?  
  
Ich hoffe ihr konntet meinen Gedankengängen folgen und ich hoffe weiterhin dass ihr Licht in meine geistige Plattenbausiedlung bringen könnt :)  

--
sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(