Friday, May 17, 2024
 Popular · Latest · Hot · Upcoming
51
rated 0 times [  55] [ 4]  / answers: 1 / hits: 107094  / 9 Years ago, thu, august 6, 2015, 12:00:00

Does JavaScript support substitution/interpolation?


Overview




I'm working on a JS project, and as it's getting bigger, keeping strings in good shape is getting a lot harder. I'm wondering what's the easiest and most conventional way to construct or build strings in JavaScript.


My experience so far:



String concatenation starts looking ugly and becomes harder to maintain as the project becomes more complex.



The most important this at this point is succinctness and readability, think a bunch of moving parts, not just 2-3 variables.


It's also important that it's supported by major browsers as of today (i.e at least ES5 supported).


I'm aware of the JS concatenation shorthand:


var x = 'Hello';
var y = 'world';
console.log(x + ', ' + y);

And of the String.concat function.


I'm looking for something a bit neater.


Ruby and Swift do it in an interesting way.


Ruby


var x = 'Hello'
var y = 'world'
print "#{x}, #{y}"

Swift


var x = "Hello"
var y = "world"
println("(x), (y)")

I was thinking that there might be something like that in JavaScript maybe something similar to sprintf.js.


Question




Can this be done without any third party library? If not, what can I use?


More From » string

 Answers
33

With ES6, you can use





ES5 and below:




  • use the + operator



    var username = 'craig';
    var joined = 'hello ' + username;

  • String's concat(..)



    var username = 'craig';
    var joined = 'hello '.concat(username);



Alternatively, use Array methods:




  • join(..):



    var username = 'craig';
    var joined = ['hello', username].join(' ');

  • Or even fancier, reduce(..) combined with any of the above:



    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


[#65524] Tuesday, August 4, 2015, 9 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
quentinaveryb

Total Points: 102
Total Questions: 100
Total Answers: 93

Location: Colombia
Member since Mon, May 2, 2022
2 Years ago
quentinaveryb questions
Thu, Aug 6, 20, 00:00, 4 Years ago
Fri, Jul 17, 20, 00:00, 4 Years ago
Mon, Aug 12, 19, 00:00, 5 Years ago
;