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

javascript is more powerful that you have imagined! did you “really” know?

the first time i wrote one line in javascript was around 1998 and 1999 ( you are right…i’m old… :) ) i can guarantee the life was not easy that time. many developers started to hate javascript. they were happy when solutions for web arrived and they could create website without touch in one line of javascript. actually, i agree with the declaration that javascript is one of the most misunderstood languages in the world. i would say under-estimated.

the scenario is changing recently. “web 2.0″, interactive sites, ajax and others. these are common and usual terms that moved the developers to take a look in the javascript again. even between .net communities, javascript is being mentioned, used and sometimes suggested. but, as happened with some frameworks, languages and tools, some developers start to use, evangelize and also say “it’s really good and nice”. actually, they don’t know what they are using. they only are following what is “fashion” and “cool”.

as i mentioned, javascript is one of the most misunderstood and under-estimated language. we really can do many things. much more than just have control over DOM. once we decided to use javascript, the minimum is understand its potential. and it requires a small effort to get the basic knowledge.

i’ve seemed people talking that coffeescript is nice, “you should use coffeescript”, “i can do what i want with javascript”. but, they really don’t know javascript. i’m not talking about know how to write a function in coffee script. i’m talking about knows what is a function in javascript. i’m talking about knows what is the difference between “3″ + 4 + 5 and 3 + 4  + “5″.

i’ve been studying javascript and its many frameworks. i like what i see. i’ve used coffeescript and it’s really nice and make the difference. however, i need to know javascript if i want to write a good code in javascript. even if i’m using a framework or even i’m not.

so, let’s use javascript, coffeescript, node.js and any other .js. however, let’s really know what we are using…so, we can write a good code in c# or in javascript.