Зачем использовать выражение строки шаблона a = `$ {a}` в javascript? - PullRequest
0 голосов
/ 22 апреля 2020

Я просматривал некоторый код javascript и заметил строку, в которой используются обратные ссылки строки шаблона:

a=`${a}`

Однако, похоже, это не имеет никакого эффекта, поскольку переменная a содержит строка.

Это просто NOP или есть строковое значение для a, которое отличает результат от исходного значения?

Ответы [ 2 ]

1 голос
/ 22 апреля 2020

Если a не является строкой, это приведет к преобразованию переменной в строку, вызвав .toString(), доступный в прототипе объекта:

function templateString(d) {
  return `${d}`;
}

console.log(templateString('foo bar'));
console.log(templateString(1337));
console.log(templateString(false));
console.log(templateString(undefined));
console.log(templateString({ 'foo': 1337, 'bar': 'baz' }));
console.log(templateString(['foo', 'bar', 'baz']));
console.log(templateString(function(x) { return x; }));
console.log(templateString(new RegExp('\\w+')));
0 голосов
/ 22 апреля 2020

Обратные метки в основном используются для шаблонных строк, для конкатенации переменных и тому подобного. В этом случае он используется исключительно для преобразования переменной в строку. Если результат изменится, будет зависеть от того, для чего используется переменная a.

В этом случае преобразование его в строку с другим методом не изменит результат.

...