Есть ли разница между преобразованиями в строку:
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 }
Немного спецификации:
ToString
String
, без оператора new
, если тип параметра Symbol
, то вызовется функция SymbolDescriptiveString
, в противном случае будет вызвана та же самая ToString
.Таким образом можно заключить, что разница будет видна только если аргументом будет объект Symbol
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Где в google sheets писать скрипт, который мог работать с ячейками, изменять данные и тп
Начал изучать React параллельно с JSВ своем коде использую препроцессор JSX