Documentation MDN pour parseInt
Documentation MDN pour parseFloat
Dans parseInt le radix est spécifié comme dix pour que nous soyons en base 10. En javascript non strict, un nombre précédé de 0
est traité en octal. Cela poserait évidemment des problèmes !
parseInt(num1, 10) + parseInt(num2, 10) //base10
parseFloat(num1) + parseFloat(num2)
Voir aussi la réponse de ChaosPandion pour un raccourci utile utilisant un opérateur unaire . J'ai mis en place un fiddle pour montrer les différents comportements.
http://jsfiddle.net/EtX6G/
var ten = '10';
var zero_ten = '010';
var one = '1';
var body = document.getElementsByTagName('body')[0];
Append(parseInt(ten) + parseInt(one));
Append(parseInt(zero_ten) + parseInt(one));
Append(+ten + +one);
Append(+zero_ten + +one);
function Append(text) {
body.appendChild(document.createTextNode(text));
body.appendChild(document.createElement('br'));
}