что лучше использовать при конвертации числа в строку
var theNum = 123;
theNum.toString();
String( theNum );
new String( theNum );
''+theNum;
`${theNum}`;
Короткий ответ:
Если воспринимать вопрос буквально то:
TOP1:
''+theNum;
`${theNum}`;
Разница в производительности незначительна.
При этом следует помнить, что в случае template string (
${theNum};), все сильно изменится если будет указна template function`${theNum}`; // максимально быстро
String.raw`${theNum}`; // много ньюансовДалее топ распределился следующим образом:
theNum.toString();
String( theNum );
что вполне ожидаемо.
Длинный ответ
Очевидно что все зависит от целей, и сравнивать просто использование метода toString с template String некорректно.
Тот же метод toString обладает функционалом приведения отображения числа в зависимости от заданной системы счисления (двоичная, шестнадцатеричная и так далее) Чего не предоставляет не один другой.
Опять же использования "традиционной" конкатинации:
"" + theNum
сильно начинает зависеть от обстоятельств финализированной строки, где одна конкатенация - это конечно же быстро, но если на требуется сто таких конкатенаций?
Вместо ИГОГО
В JS, преследуемая цель, может переворачивать с ног на голову выбираемое решение.
Обозначение которой - является залогом успеха при поиске наиболее эффективного решения.
Сейчас - в современном JS, при работе со строками, наиболее удобным и производительным решением является использования синтаксиса с
var theStr = `${theNum}`;вместо синтаксиса с конкатенацией
"" + theNum;
Использование же toString или new String так же может быть эффективным решением, при условии решения соответствующих задач.
Например приведение отображения числа к соответствующей система счисления:
var theNum = 15;
theNum.toString();
theNum.toString(2);
theNum.toString(16);
где реализация такого же самого функционала, с использованием "самого быстрого приема приведения числа к строке", потребует реализации алгоритма, издержки работы которого уничтожит все преимущества использования той самой конкатенации.