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