Help us understand the problem. What is going on with this article?

【JavaScript】数値から文字列に変換する

JavaScript を勉強することになったのでとりあえず FizzBuzz を書いてみることにしました。
FizzBuzz 関数内において、引数として受け取った値を Number 型から String 型に変換する必要が出てきた際に詰まりました。
そこで、Number 型から String 型への変換方法を調べてみた結果、色々見つかったので残しておくことにしました。

結論を先に書いておく。

Number 型の値をただ文字列に変換したいだけならば、String() で変換するのが一番いいと思う。

String(Number)

ただ単純に Number 型のオブジェクト(以下、Number)を String 型のオブジェクトに変換するみたいです。
恐らくこれが最もオーソドックスな方法なのかな?と感じます。

NumToStr1.js
var num = 100;
var s = String(num); //=> "100" 

Number.toString(n)

このメソッドは Number を n 進数に変換した文字列を返すみたいです。
そのため、Number が 10 進数ならば、引数 n に 10 を指定すればそのまま Number を String 型に変換することができます。
また、引数に何も指定しない場合は n = 10 として Number が変換されます。

NumToStr2.js
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 を指定すればそのまま文字列に変換することができます。

NumToStr3.js
var num = 3.141592;
var s1 = num.toFixed(0); //=> "3"
var s2 = num.toFixed(6); //=> "3.141592"
var s3 = num.toFixed(10); //=> "3.1415920000"

その他

+ 演算子を文字列連結演算子として解釈させることで、文字列に変換する方法もあるみたいです。

NumToStr4.js
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()はきっとピンポイントで使うときがあるんだろう(よくわからないけど)。

ndj
JavaScript 勉強中
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away