toString or +”" to cast a number to string

in another post i talked about an “automatic” conversion of a number to string when concatenating a string in javascript.

some developers use this feature to cast a number to string.

var number = 897;
var numberToString = number + "";
> "897" #between quotes in a debug tool showing that it's a string

i don’t like this approach even considering the result is the same. the javascript has the method toString. i prefer to use this method instead of using +”".

var number = 897;
var numberToString = number.toString();
> "897" #between quotes in a debug tool showing that it's a string

the reason i prefer the method toString instead of  + “” is the readability. the concatenation with a empty string “” can be confused or misleading when another developer is reading the code. this concatenation doesn’t show clearly that its aim is cast a number to string. i believe the method toString shows clearly this aim for the developers reading this code.

dave thomas explaining what he thinks to be a clean code in the first chapter of Clean Code book says:

“Clean code can be read, and enhanced by a developer other than its original author…”

answer: is there any difference in javascript? “6″ + 7 + 8 and 6 + 7 + “8″. concatenating string and numbers

last week i posted a question about the difference between the results of  ’6′+ 7 + 8 and 6 + 7 + ’8′ in javascript. the concatenation of string and number can be a little trick.

probably you know that numbers are converted to string when it’s being concatenated to a string. it’s a interesting feature. however, it’s important to have a good understanding about how this conversation works. So, unexpected results can be avoided.

the conversation occurs only when the first string is added. So,

'6' + 7 + 8
> 678


6 + 7 + '8'
> 138

it’s also important to know that it doesn’t happen with other math operations, such as:

'6' + 3*3 + '7'
> 697


'6' + 3-3 + '7'
> 607