JavaScript を勉強することになったのでとりあえず FizzBuzz を書いてみることにしました。
FizzBuzz 関数内において、引数として受け取った値を Number 型から String 型に変換する必要が出てきた際に詰まりました。
そこで、Number 型から String 型への変換方法を調べてみた結果、色々見つかったので残しておくことにしました。
#結論を先に書いておく。
Number 型の値をただ文字列に変換したいだけならば、String()
で変換するのが一番いいと思う。
#String(Number)
ただ単純に Number 型のオブジェクト(以下、Number)を String 型のオブジェクトに変換するみたいです。
恐らくこれが最もオーソドックスな方法なのかな?と感じます。
var num = 100;
var s = String(num); //=> "100"
#Number.toString(n)
このメソッドは Number を n 進数に変換した文字列を返すみたいです。
そのため、Number が 10 進数ならば、引数 n に 10 を指定すればそのまま Number を String 型に変換することができます。
また、引数に何も指定しない場合は n = 10
として Number が変換されます。
var num = 255;
var s1 = num.toString(10); //=> "255"
var s2 = num.toString(16); //=> "ff"
var s3 = num.toString(32); //=> "7v"
var s4 = num.toString(); //=> "255"
#Number.toFixed(n)
このメソッドは Number の小数点以下の桁数を n 桁にした文字列を返すみたいです。
そのため、文字列に変換したい Number が整数ならば、引数に 0 を指定すればそのまま文字列に変換することができます。
var num = 3.141592;
var s1 = num.toFixed(0); //=> "3"
var s2 = num.toFixed(6); //=> "3.141592"
var s3 = num.toFixed(10); //=> "3.1415920000"
#その他
+ 演算子を文字列連結演算子として解釈させることで、文字列に変換する方法もあるみたいです。
var num = 100;
var s = num + ""; //=> "100"
#参考
SOFTELメモ
MDN web docs mozilla : Number.prototype.toString()
MDN web docs mozilla : Number.prototype.toFixed()
#まとめ
Number をただ文字列に変換したいだけならば、String()
で変換するのが一番よさそう。
値を n 進数に変換し、さらに文字列として扱いたいなら、 Number.toString()
。
Number.toFixed()
はきっとピンポイントで使うときがあるんだろう(よくわからないけど)。