私は、数値を文字列に変換する場合、number.toString()またはString(number)を使っている。
+演算子を使う方法は、+演算子が複雑な挙動をしバグの原因になるから、使わないことにしている。
var a1=2014;
var val1;
var val2;
var val3;
if(typeof a1 === 'number'){
document.writeln("\n<br/>");
document.writeln("a1:数値\n<br/>");//数値
document.writeln("a1="+a1+"\n<br/>");//2014
}
val1=a1.toString();
val2=String(a1);
if(typeof val1 === 'string'){
document.writeln("\n<br/>");
document.writeln("val1:文字列\n<br/>");//文字列
document.writeln("val1="+val1+"\n<br/>");//2014
}
if(typeof val2 === 'string'){
document.writeln("\n<br/>");
document.writeln("val2:文字列\n<br/>");//文字列
document.writeln("val2="+val2+"\n<br/>");//2014
}
// +演算子はどちらかのオペランドが空文字の場合、
// 一方のオペランドを文字列に変換する
val3=a1+'';
if(typeof val3 === 'string'){
document.writeln("\n<br/>");
document.writeln("val3:文字列\n<br/>");//文字列
document.writeln("val3="+val3+"\n<br/>");//2014
}
参考
Douglas Crockford 著 水野貴明 訳『JavaScript:The Good Parts』 (オライリー・ジャパン発行、2008) P98,120~121