Little Strange Software

スマホアプリの開発を行う LittleStrangeSoftware のブログです。

はてなブログで始める!JavaScript超入門!第二回

 どうも!LSSです!!

 

はてなブログで始める!JavaScript超入門!」、前回
第一章 Hello World
第二章 変数を使ってみよう!
第三章 計算ぐらいしておこうか
という内容でお送りしました。

 

 さて、今回は第二回をお送りします!

 

 

第四章 ifによる分岐

 

 前回のコードを少し書き換えて、次のようにします。

 

<div id="hello"> </div>
<script>// <![CDATA[
a=0;
if(a==0){
hello.innerHTML="ゼロ、ってなんか響きがいいよね";
}
// ]]></script>

 

  基本的にコードは日本語変換をオフにして打ちますが、
"ゼロ、ってなんか響きがいいよね"

この""の中身に関しては日本語で書いてもOKです^^

 

で、プレビューしてみます。

 

f:id:little_strange:20200421224443p:plain

 

 普通に出てきましたね。

 では次に、3行目の
a=0;
を、
a=1;
に書き換えてみましょう。

 

f:id:little_strange:20200421224708p:plain

↑こういう状態ですね。

 

 これでもう一度プレビューを開くと…?

 

f:id:little_strange:20200421224813p:plain

↑なにも出てこなくなってしまいました…。

 

 文字を書き出しているのは、
hello.innerHTML="ゼロ、ってなんか響きがいいよね";
の部分で、そこには手を加えていないのに??

 

 もう一度、3行目を
a=0;
にすると…

f:id:little_strange:20200421225033p:plain

 

 やっぱり出てきますね。

 

<div id="hello"> </div>
<script>// <![CDATA[
a=0;
if(a==0){
hello.innerHTML="ゼロ、ってなんか響きがいいよね";
}
// ]]></script>

 

 何が起こっているのか、順を追って見ていきます。

 

 ページが読み込まれ、ブラウザが表示しようとした時に、<script>タグをブラウザが見つけると、その中身をJavaScriptのコードとして実行しようとします。

 

 まず最初に、
a=0;
というコードがありました。

 

 そこで、ブラウザは「aという変数(aと側面に書いた箱)」を用意します。
 そしてその中に「0」という数字をぶち込みます。

 

 さて次に進むと、今度は

if(a==0){
中略
}

というものがありました。

 

  ブラウザは「お、ifがでてきたな。ifのしきたりに沿って処理しないと…」と判断します。

 

~ifのしきたり~

if(条件){処理}

ifの後には(){}がつき、()の中身は「条件」{}の中身は「処理」とみなされます。

 そして、「条件」に書かれている事が真の場合(正しい場合)だけ、「処理」として書かれた内容を実行し、「条件」が偽の場合(正しくない場合)は「処理」を行わずスルーします。

 

 

  さて、ブラウザがまず()の中身を確認すると、そこには
a==0
と書かれています。

  =が二つ続けて書かれていますが、JavaScriptの場合、
「左と右が同じものかどうか比較」
する場合には==で書く事になっています。
(他のプログラム言語は=だけのものもあります)

 

 さっきaにぶち込んだものは0で、「0と0」は同じものですね。
なので「条件」は真である(正しい)と判断され、めでたく「処理」の部分が実行される事になります。

 

 この場合の処理は、

hello.innerHTML="ゼロ、ってなんか響きがいいよね";
なので、第一章の”Hello World"の時と同じく、
「helloと名付けられた要素の中身に"ゼロ、ってなんか響きがいいよね"という文字列をぶち込む」
という処理が行われ、プレビュー表示した時にはそれが表示された状態になりました。

 

 

 その後、3行目を
a=1;
に書き換えた時には、ifのところで「1と0」は同じじゃないよね。って事で、

hello.innerHTML="ゼロ、ってなんか響きがいいよね";
の部分は実行されずにスルーされたため、プレビュー表示で出てこなかった、というのが事の真相です。

  

 

 

第五章 ifのもうひとつのしきたり

 

~ifのもうひとつのしきたり~

if(条件){真の場合の処理}else{偽の場合の処理}

ifの後に(){}else{}がつき、()の中身は「条件」、2つの{}の中身はそれぞれ「処理」とみなされます。

「条件」に書かれている事が真の場合(正しい場合)は、
最初の{}の中に書かれた「処理」だけを実行します。
「条件」が偽の場合(正しくない場合)は、
elseの後ろの{}に書かれた「処理」だけを実行します。

 

 ifには、↑のような もうひとつの書き方があります。

 

 再度、コードに手を加えてみます。

 

<div id="hello"> </div>
<script>// <![CDATA[
a=0;
if(a==0){
hello.innerHTML="ゼロ、ってなんか響きがいいよね";
}else{
hello.innerHTML="ゼロではない何か";
}

// ]]></script>

 

  ピンク色部分を書きたしました。

 

 これをプレビュー表示すると、

f:id:little_strange:20200421233057p:plain

↑また同じ結果ですね。
(ちなみに、同じ画像を使わずいちいちスクショ撮ってアップしています←どうでもいい情報w) 

 

 ではまた、3行目を

a=1;
に書き換えて、プレビュー表示してみます。

 

f:id:little_strange:20200421233328p:plain

 

 else{}を書く前は、aの中身を1にしてa==0が成立しないようにすると何も出てきませんでしたが、else{}の中に別の処理
hello.innerHTML="ゼロではない何か";
を書いたら、そっちが実行されるようになりましたね^^

 

if(条件){処理}
のほうを使うか、

if(条件){真の場合の処理}else{偽の場合の処理}
のほうを使うか、は今後、ifを使用する場面で都合のいい方を使っていく事になります。

 

 

 プログラムを実行する=コンピュータになにかを判断させる時、ほとんどのプログラム言語で使用する事になる、とっても基本的かつ重要なifについて、の回でした^^

 

 

一応、余談なんですけど、

 

「ifのしきたり」とか言ってますが「しきたり」ってLSSが今回の説明のために使った言葉ってだけで、プログラミング界隈でそう呼ばれているわけではない、という事だけ付け加えておきますwww

 あともひとつ。前回の記事の中にJavaScriptと全く関係のないLSSの個人情報を忍ばせております。←本気でどうでもいいな!

 

 

てなとこで、今回はこのへんで!

次回もまた、よろしくお願いします^^