Ist Javascript Teilstring virtuell?

Wenn wir eine riesige Zeichenfolge haben, mit dem Namenstr1Sagen wir 5 Millionen Zeichen lang und dannstr2 = str1.substr(5555, 100) damitstr2 ist 100 Zeichen lang und eine Teilzeichenfolge vonstr1 ab 5555 (oder einer anderen zufällig ausgewählten Position).

Wie JavaScript speichertstr2 im Inneren? Wird der Inhalt der Zeichenfolge kopiert oder ist die neue Zeichenfolge virtuell und nur ein Verweis auf die ursprüngliche Zeichenfolge und Werte für Position und Größe werden gespeichert?

Ich weiß, dass dies implementierungsabhängig ist. Der ECMAScript-Standard definiert (wahrscheinlich) nicht, was sich unter der Haube der String-Implementierung verbirgt. Aber ich möchte von einem Experten wissen, der V8 oder SpiderMonkey von innen gut genug kennt, um dies zu klären.

Vielen Dank

Antworten auf die Frage(3)

Ihre Antwort auf die Frage