ウェブカツ!!学習メモ:if( )の括弧の中身とMath.random

※こちらは学習メモです。アウトプットすることで「わかる」から「使える」にすることを目的としています。

 

ウェブカツ!!の未経験・初心者向け「JavaScript鬼練4」から。

新たに学んだif( )の括弧の中身と、知ってたけど使えていなかったMath.randomについて。

if( )の括弧の中は式でなくていい

これまでif文を使っていたときは、

if(a === 100) {

console.log('100だよ');+

}

というかんじで、if( )の括弧内には式を入れていました。そのため、鬼練4でもこのように...

f:id:soybelln:20190308201626j:plain

randが0のときは、answerに'仕事に決まってるだろ'を代入し、randが1のときは、answerに'君の方が大事だよ'を代入しました。

 

ところが実は、if( )の括弧内は式じゃなくてもいいのです!!

解答はこちら

f:id:soybelln:20190308203418j:plain

単純にif(rand)だけですね。

これは、if文は真偽値を判定したいので、括弧内の値を勝手にtrueまたはfalseに変換するからだそうです。

なにをtrueに、なにをfalseにするかというと、

  • true...文字列、数値の1など
  • false...undefined、null、数値の0

鬼練4ではrandがランダムに0(false)か1(true)になるので(rand)だけで勝手に真偽値が判定されます。

変数answerに空の値を入れる?

解答でまず一番はじめに書かれていたのは

var answer = null;

の一行でした。私はこれを飛ばしてました〜。

そのため、if文の中に変数を定義していました。

f:id:soybelln:20190308201626j:plain

var answer = null;

これは一応、「answerという変数を後で使うから入れ物用意しました。中身はnull(空という値)です。」という意味のようです。

これがね〜...なくても動いたんです...。

解答のように

f:id:soybelln:20190308203418j:plain

varでanswerを定義しなくても、動きました。動いちゃうので、はじめに空の値を入れる理由がわからなくなりました。

おそらく、これも「こういうもん」と思ってはじめに書いておくことにしたらいいのかな〜

メモ:

var answer = null; answerに空という意味の値を入れる

var answer; answerという箱を作る

var answer = ''; answerに空の文字を入れる

Math.random( )

Math.random( )はランダムな数字を出してくれるサイコロのようなメソッドです。とはいえ、Math.random( )だけでは0.0以上1.0未満の数値しか出してくれません。

解答のように

Math.random( )*2

として、2を乗じることで0.0以上2.0未満の数値をランダムに出してくれるようになります。

そして、Math.floor( )は小数点以下を切り捨てる関数なので、

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

のように組み合わせることで0か1の数値を出してくれるというわけです。