Подстрока Javascript является виртуальной?
Если у нас есть огромная строка с именемstr1
скажем, 5 миллионов символов, а затемstr2 = str1.substr(5555, 100)
чтобыstr2
длиной 100 символов и является подстрокойstr1
начиная с 5555 (или любой другой случайно выбранной позиции).
Как хранит JavaScriptstr2
внутри? Копируется ли содержимое строки или новая строка является виртуальной, и сохраняются только ссылки на исходную строку и значения для позиции и размера?
Я знаю, что это зависит от реализации, стандарт ECMAScript (вероятно) не определяет, чтоs под капотом реализации строки. Но я хочу узнать от одного эксперта, который знает V8 или SpiderMonkey изнутри достаточно хорошо, чтобы прояснить это.
Спасибо