Каков наилучший способ создания/конкатенации строк в JavaScript?
TL; DR
поддерживает ли JavaScript подстановку / интерполяцию?
обзор
Я работаю над проектом JS, и поскольку он становится больше, держать строки в хорошей форме становится намного сложнее. Мне интересно, какой самый простой и обычный способ создания или сборки строк в JavaScript.
мой опыт:
конкатенация строк начинает выглядеть уродливо и становится все труднее поддерживать по мере усложнения проекта.
самое важное это на данный момент-лаконичность и читаемость, подумайте о куче движущихся частей, а не только о 2-3 переменных.
также важно, что он поддерживается основными браузерами на сегодняшний день (i.e по крайней мере ES5 поддерживается).
Я знаю стенографию конкатенации JS:
var x = 'Hello';
var y = 'world';
console.log(x + ', ' + y);
5 ответов
С ES6, вы можете использовать
-
var username = 'craig'; console.log(`hello ${username}`);
ES5 и ниже:
-
использовать
+
операторvar username = 'craig'; var joined = 'hello ' + username;
-
строки!--28-->
concat(..)
var username = 'craig'; var joined = 'hello '.concat(username);
альтернативно, используйте Array методы:
-
var username = 'craig'; var joined = ['hello', username].join(' ');
-
или еще более причудливый,
reduce(..)
в сочетании с любым из вышеперечисленных:var a = ['hello', 'world', 'and', 'the', 'milky', 'way']; var b = a.reduce(function(pre, next) { return pre + ' ' + next; }); console.log(b); // hello world and the milky way
var descriptor = 'awesome';
console.log(`ES6 is ${descriptor}!`);
еще:https://developers.google.com/web/updates/2015/01/ES6-Template-Strings?hl=en
можно использовать Coffeescript, это сделано, чтобы сделать код javascript более кратким.. Для конкатенации строк вы можете сделать что-то вроде этого:
first_name = "Marty"
full_name = "#{first_name} McFly"
console.log full_name
может быть, вы можете начать здесь чтобы увидеть, что предлагает coffescript..
Я думаю заменить() заслуживает упоминания здесь.
в некоторых условиях метод replace может хорошо служить вам при построении строк. В частности, очевидно, когда вы вводите динамическую часть в статическую строку. Пример:
var s = 'I am {0} today!';
var result = s.replace('{0}', 'hungry');
// result: 'I am hungry today!'
заполнитель, который нужно заменить, очевидно, может быть чем угодно. Я использую "{0}", "{1}" и т. д. По привычке с C#. Он просто должен быть достаточно уникальным, чтобы не наступить в строки, где предназначенный.
Итак, при условии, что мы можем немного поиграть со строковыми частями, пример OPs также может быть решен следующим образом:
var x = 'Hello {0}';
var y = 'World';
var result = x.replace('{0}', y);
// result: 'Hello World'. -Oh the magic of computing!
ссылка на "заменить": https://www.w3schools.com/jsreF/jsref_replace.asp