Loading collection data...
Collections are a way for you to organize kata so that you can create your own training routines. Every collection you create is public and automatically sharable with other warriors. After you have added a few kata to a collection you and others can train on the kata contained within the collection.
Get started now by creating a new collection.
Ah crap, you are right.
@jhoffner : No, the result will be exactly the same : " World" in both cases.
Of course, in this instance the array being used changes the way the function handles edge cases as well. I would argue that is much more relevant then the microscopic performance benefit.
With the array, passing in an empty string for one of the params will not result in a string being returned that would need to be trimmed.
i.e.
say('')('World')
would return "World" instead of " World".Hey laoris, in the same post he warns against building a webpage using
+=
, but I suppose it's for maintainability reasons rather than computation costs.I don't see Jeff Atwood say that you "shouldn't use string concatenation ever" in that article. In fact it would seem that he is arguing the opposite. The article investigates the best way to do small bits of string concatenation (e.g., not in a loop), and his last section is headlined "It. Just. Doesn't. Matter!".
His conclusion is that your primary concern should be to write better code: "you should be more worried about the maintainability and readability of your code than its performance". Furthermore he warns that "Any time you see 'don't ever do X', alarm bells should be going off".
Joining an array is a fairly well-known JavaScript idiom to concatenate strings, but it still carries a higher cognitive load that simply using the
+
operator, which is much simpler and explicit. Therefore in this case, where we are concatenating just three strings, I'd argue that the best practice would be just add the strings together.That said, I would also be interested to know node.js can optimize
string1 + ' ' + string2
into a single memory allocation or if it would do(string1 + ' ') + string2
.A lot of people subscribe to Jeff Atwood's position that you should never use string concatenation, ever.
http://blog.codinghorror.com/the-sad-tragedy-of-micro-optimization-theater/
It would be nice to do a side by side comparison of the disassembled JIT code that node.js generates for this and the string concatenation solution look like.
Woudln't creating an array here allocate more memory than needed to solve the problem?