【初心者向け】真偽値をランダムに出力する方法〜JavaScript編

   

真偽値(true / false)をランダムに出力させる処理の書きかたです。

こう書きます

Math.floor(Math.random()*2);

randっていう変数に入れてブラウザ表示させてみましょう

リロードするごとに、0もしくは1の数値が表示されます。JavaScriptでは数値0はfalse、1はtrueとして扱われるため、結果true / falseがランダムに出力できることになります。

ここで使われている関数

「なんでこう書くとこうなるの?」ということで、ここで使われているMath.floor()、Math.random()って関数とは何ぞや?を見ていきます。

Math.random()関数とは

名前のまんまなんですけど、ランダムな数値を出力します。範囲が決まってて、0.0以上〜1.0未満のあいだです。
で、今回は*2と、関数に2をかけてますよね。だから2倍の範囲の0.0以上〜2.0未満になります。0もしくは1の値が欲しいわけだから、通常の1未満じゃダメで、*2して2未満まで範囲を広げないといけません。

浮動小数点数で出力されちゃう

random()関数だと浮動小数点数で出力されちゃいます。

こういうのが返ってきちゃうんですね↓

0.6707395944300361

とか

1.1964763313694555

今回欲しいのは0か1といった整数なので、ハッキリせい!!となっちゃいます。

これを解決してくれるのがMath.floor()関数です。

Math.floor()関数とは

小数点以下を切り捨てた整数にしてくれる関数です。

0.6707395944300361

なら0に。

1.1964763313694555

なら1にして返してくれます。

だから今回

と、ハッキリしないMath.random()*2をまるっと引数に入れてピシャンピシャン小数点以下を切り捨ててくれてるので、真偽値として使える0もしくは1の値として返ってくるようになったわけです。

おしまい!!

 - エンジニアへの道