в 5 символов.
Вопрос такой: что происходит в памяти при конкатенации, и выделяет ли он заранее больше памяти указаного размера? (на стороне в8).
включите инспект и дебагер для v8 и гляньте.
либо прошерстите исходники)
так исходники V8 на плюсах, вдруг человек не знает, а дамп памяти всегда можно глянуть.
Господи, какая каша у вас в голове 🤣 1. символ в utf-8 от 1 до 4 байт, если символ ascii, то в utf-8 он занимает ровно 1 байт. 2. подс строку выделяется размер памяти без capacity, это не массив, в который предполагается добавление данных, строка не динамическая структура данных 3. При конкатенации происходят разные вещи, в зависимости от того что вы конкатенируете, если новые строки, то просто создается участок памяти нужного размера под эту строку и все. Если конкатенация происходит из уже имеющихся строк в памяти, то там немного интересней происходит процесс, но мне сложно объяснить, вот так)) 4. интересное про строки вот https://habr.com/ru/post/449368/
Спасибо
А при чем тут utf8? В js ведь символы всегда занимают 16 бит
Обсуждают сегодня