Вопрос об оптимизации строк в JavaScript
Изучаю особенности работы со строками в JS и хочу понять, как движок обрабатывает константы.
В Java компилятор умеет объединять строковые литералы на этапе компиляции:
final String FIRST = "hello";
final String SECOND = "world";
final String RESULT = FIRST + SECOND;
В этом случае новая строка НЕ создается во время выполнения программы.
Может ли JavaScript делать похожую оптимизацию? Например:
const greeting = "hello";
const target = "world";
const message = greeting + target;
Поскольку обе переменные являются константами, я думал, что JS может избежать создания нового объекта в памяти, как это делает Java с final переменными.
Выполняет ли V8 такую оптимизацию или всегда создает новую строку в памяти при конкатенации?