Есть ли разница между преобразованиями в строку:
let a = 5;
let b = a + '';
let c = String(a);
В приведённом примере - нет. Вообще, я предпочитаю сложение со строкой - оно короче, нагляднее и работает быстрее. Кстати, есть ещё третий вариант - вызов метода toString, но он будет падать, если в переменной окажется null или undefined.
А вообще, разница может быть, например, с типом данных symbol:
var num = 12345
console.log(String(num))
console.log(num.toString())
console.log(num + "")
var sym = Symbol("smth")
console.log(String(sym))
console.log(sym.toString())
console.log(sym + "")
.as-console-wrapper.as-console-wrapper { max-height: 100vh }
Немного спецификации:
ToStringString, без оператора new, если тип параметра Symbol, то вызовется функция SymbolDescriptiveString, в противном случае будет вызвана та же самая ToString.Таким образом можно заключить, что разница будет видна только если аргументом будет объект Symbol.
Продвижение своими сайтами как стратегия роста и независимости