Использование синтаксиса шаблона не работает в старых браузерах, что важно, если вы создаете HTML для публичного использования. Использование конкатенации является утомительным и трудным для чтения, особенно если у вас много или длинные выражения, или если вы должны использовать скобки для обработки сочетаний чисел и строковых элементов (оба из которых используют оператор +).
PHP расширяет строки в кавычках, содержащие переменные и даже некоторые выражения, используя очень компактную запись: $a="the color is $color";
В JavaScript эффективная функция может быть написана для поддержки этого: var a=S('the color is ',color);
с использованием переменного числа аргументов. Хотя в этом примере нет преимуществ перед конкатенацией, когда выражения становятся длиннее, этот синтаксис может быть более понятным. Или можно использовать знак доллара, чтобы обозначить начало выражения с помощью функции JavaScript, как в PHP.
С другой стороны, написание эффективной обходной функции для обеспечения подобного шаблону расширения строк для старых браузеров не составило бы труда. Кто-то, вероятно, уже сделал это.
Наконец, я представляю, что sprintf (как в C, C ++ и PHP) может быть написан на JavaScript, хотя он будет немного менее эффективным, чем эти другие решения.