Java Script入門2

基礎編(条件分岐、繰り返し、関数)

  • 条件」の部分に「1 > a」などの条件を記入し、その結果が trueの時だけ、「 やりたい処理」が実行されます。
  • falseの場合は何もしません。(ムシ)
  • 条件式は、 結果が必ず【 truefalse】にならないといけない ので、 比較演算(>、<、==など)、または 論理演算(&&、||など)を使います。

条件分岐[if文]

if( 条件 ){
    やりたい処理
}
var hp = 10;
if( hp < 5 ){
    console.log("やられるー");
}

falseなのでなにも出力されない

var hp = 3;
if( hp < 5 ){
    console.log("やられるー");
}

trueなので「やられるー」出力される

  • さて、こっからがプログラミングの醍醐味(だいごみ)の部分です。
  • すでにスクラッチなどでやっていることも多いですが、まだ説明していないことも多いので、しっかり理解して進んでいきましょう。まずは条件分岐(じょうけんぶんき)からです。
  • 条件分岐とは「もし◯◯なら、△△をする」という意味で、プログラムには欠かせない文です。
  • その条件分岐の中でも、基本となる【if(イフ)文】をマスターしておきましょう。
  • if文は、以下のように書きます。

ちょっと寄り道

()や{}について

var hp = 3;
if( hp < 5 ){
    console.log("やられるー");
}
console.log("残りHPは"+hp+"です");

この場合だと、

{}(なみかっこ)の中には「やられるー」だけなので、「残りHPは〜」はの部分は、if文とは関係なく、かならず出力されます。

()→ 丸かっこ・かっこ・パーレン  ※個人的には「かっこ派」

{}→ 波かっこ・中かっこ・ブレイス  ※個人的には「波かっこ派」

[]→ 角かっこ・大カッコ・ブラケット  ※個人的には「角かっこ派」

<> → 山かっこ・ アングルブラケット  ※個人的には「山かっこ派」

  • プログラミングでは、 if文で使われているような()や{}が非常に良く出てきます。

  • 読み方も人それぞれで、よくつかわれる言い方は下の感じです。

  • この中でも、特に {}(波かっこ)はたくさん出てきますし、とても重要(じゅうよう)になる事が多いでの、使いかたを間違えないようにしましょう。
  • {}は【 ここから→{ }←ここまで】というように、なんかしらの範囲(はんい)をあらわす時に使われます。
  • if文の場合で言うと、 【条件が trueの時に、やりたい処理】 の範囲(はんい)という事です。
  • この{}で区切られた範囲の事を 「ブロック」と言ったりします。※HTMLのブロックとは違うので注意。

条件分岐[if文]

if( 条件 ){
    やりたい処理1
    やりたい処理2
    やりたい処理3
}
if( 条件① ){
    やりたい処理1
    if( 条件② ){
     やりたい処理2
    }
}
var hp = 0;
if( hp < 5 ){
    console.log("やられるー");
    if( hp < 1 ){
        console.log(" ( ́;ω;`) ");
    }
}

{}に注目!

このような形を「入れ子」「ネスト」などとも言います。

この場合、変数hpは0なので、外側のifも、内側のifも両方 trueなので「やられるー ( ́ ́;ω;`) 」と表示されます。

  • {}の中の「やりたい処理」はいくつでも記述できます。
  • 「やりたい処理」の中に、さらにif文を入れる事も出来ます。

条件分岐[if文][else]

if( 条件 ){
    条件がtrue(トゥルー)の時やりたい処理
else{
    条件がfalse(フォレス)の時にやりたい時
}

else(エルス)の後の{}の中に、書いた処理は、条件式が falseの場合のみ動きます。

trueの時はムシされます)

  • 次は「もし◯◯なら」だけじゃなく 「〜でなければ」も指定する方法です。
  • 「でなければ」は、if文に「else(エルス)」を追加します。
var tensuu = 70;
if(tensuu > 80){
    console.log("合格です");
}else{
    console.log("残念でした");

条件分岐[if文][else]

if( 条件① ){
    条件①がtrueの時に、やりたい処理
}else if( 条件② ){
    条件①がfalseで、条件②がtrueの時に、やりたい処理
}else{
    条件①がfalseで、条件②もfalseの時に、やりたい処理
}
var tensuu = 70;
if(tensuu > 80){
    console.log("合格です");
}else if(tensuu > 60){
    console.log("もうちょい");
}else{
    console.log("残念でした");

else ifの後の{}の中に、条件①が falseだった場合の、次の条件(条件②)を記述します。

  • さらに最初の条件が「 falseだった場合」に、2番めの条件を指定することも出来ます。
  • 繰り返せば、いくらでも条件は増やせます。

条件分岐[if文][else]

var hp = 0;
if( hp < 5 ){
    console.log("やられるー");
    if( hp < 1 ){
        console.log(" ( ́;ω;`) ");
    
}

※else ifの始まりの{ が足りないため、エラーになる。

var tensuu = 70;
if(tensuu > 80){
    console.log("合格です");
}else if(tensuu > 60)
    console.log("もうちょい");
}else{
    console.log("残念でした");

※終わりの }が足りないため、エラーになる。

  • if文は()や{}が大量に増えてきますが、それぞれのカッコの 始まり終わり を見失いやすいので注意しましょう。

繰り返し文[ for ]

for(var i=0(数える用の変数作る) ; i<3(処理をする条件) ; i++(数える変数を1足す){
    ※ここに繰り返したい処理を書く。
}
for(var i=0 ; i<3 ; i++){
    console.log("ほ");
}
※ほほほ と表示される。

  • くりかえし文とは、何度も同じ処理をくりかえしたい時に使います。ループとも言います。
  • いろいろな種類(しゅるい)がありますが、まずは基本的なfor(フォー)文から覚えましょう。
  • 書き方は少し特殊(とくしゅ)で、以下のように書きます。

繰り返し文[ for ]

①の条件判定が trueの間だけ、処理されて、 falseになったら繰り返しが終わります。

変数iのことを「カウンター変数」と呼びます。

  • for文の処理の動きはこのようになります。(①から③が繰り返されます)

繰り返し文[ for ]

for(var i=0 ; i<繰り返したい回数 ; i++)
for(var i=93 ; i>90 ; i--){
    console.log("ほ");
}
//これでも"ほほほ"と表示される。
  • for(フォー)文は、とても色々な書き方が出来ます
  • ただしややこしくなってしまうので、わかりやすいルールを決めておいた方が良いかと思います。
  • 例えば、以下のように書くと、くりかえしたい回数だけ指定すれば、その回数だけ処理をくりかえしてくれます。
  • つまり【くりかえす回数以外】は変えずに、上のかたちで決めておき、くりかえしたい回数のところだけをかえれば[◯◯回くりかえす]というプログラムが作れます。

  • 続いては関数(かんすう)というものです。
  • 現在、コンピュータの中で動いているプログラムは、そのほとんどが関数で出来ています。それぐらい重要な部分ですので、ちゃんと理解できるようにゆっくり進みましょう。
  • カンタンに言うと、関数とは【処理(命令)をまとめた物】です。必殺技と考えても良いでしょう。

関数(かんすう)

たとえば…

  • コーラが飲みたくなったので、ロボット君に買ってきてもらいたいとします。
  • その場合の必要な処理(命令)は以下とします。
    • ①玄関(げんかん)まで行く。
    • ②自販機まで行く。
    • ③お金150円を入れる。
    • ④「コーラ」のボタンを押す。
    • ⑤コーラを取る。
    • ⑥家に帰ってくる。
  • 本当はもっと複雑(ふくざつ)​な命令になりますが、6個にしてみました。
    • これだけでも命令するとなるとタイヘンなのがわかりますよね?
  • まぁまだ、1回だけ買ってきてもらうだけなら良いですが、別の日に、またコーラが飲みたくなった場合、もう一度同じ命令(①〜⑦)をするのは余計メンドウです。

【コーラ買いに行く】関数

中身:色々な命令

(まとめておく)

  • そんな時に【コーラを買いに行く】という関数(必殺技)を作っておけば、【コーラを買いに行く】関数を実行させるだけで良いので、非常に楽になります。

関数(かんすう)

  • 必要な処理(命令)
    • ①【コーラを買いに行く】という関数の実行
  • 関数を作っておくだけで、いつでもカンタンに命令を出すことができます。
function log(){
    console.log(100);
}
※100という数字を出力させるためだけの関数
function 関数名(){
    処理
}

  • 関数を作る事を「関数を定義(ていぎ)する」という言い方をします。
  • 定義の仕方は下の感じです。

関数(かんすう)

function log(){
    console.log(100);
    console.log(200);
    console.log(300);    
}

log(); 
※↑100,200,300が表示される。
function 関数名(){
    処理;
}
※↑定義(ていぎ)はここまで。

関数名(); 
※↑これが関数の呼び出し。関数名()で呼び出せる。

  • 関数は定義()するだけでは、動きません。(命令されていないということ)
  • 関数を動かしたい場合は、関数を呼び出す(よびだす)必要があります。

関数(かんすう)

function aisatu(name){
    console.log('ハロー,' + name);
}

aisatu('トム');
※↑「ハロートム」と出力される。
function 関数名( 引数(ひきすう) ){
    処理(引数が含まれる);
}

関数名( 引数に渡す値 ); 
※↑関数の呼び出しの時に()の中に、値(ね)をいれて呼び出す。

  • さらに関数を便利(べんり)にするための仕組みがあります。それが引数(ひきすう)です。
  • 引数とは関数に【値(ね)】を渡す仕組みです。っというと意味不明な感じがしますが、難しいことではありません。
  • 引数とは変数の仲間だと思ってください。つまり、中にいろいろ代入できる箱です。

関数(かんすう)

function sikaku(x, y){
    var menseki = x * y;
    console.log(menseki);
}
  • たとえば、下のような関数を作ります。

関数(かんすう)

function sikaku(x, y){
    var menseki = x * y;
    console.log(menseki);
}

sikaku(10,20);
※↑200と出力される。
  • 名前をみればわかると思いますが、これは四角形の面積(めんせき)を計算する関数です。
    • ※四角形の面積はタテ×ヨコの長さでしたね?
  • このsikaku関数の中身では、xとyがかけ算されていますね。このxとyが引数です。
  • つまり、このsikaku関数を呼び出すときに、引数にタテとヨコの数字を指定して呼び出すと四角形の面積を、自動的(じどうてき)に計算して出力させることができます。
  • この便利さがわかれば、関数がどんなパワーをもっているか、理解できると思います。

①玄関まで行く。

②【ikisaki】引数まで行く。※自販機じゃない可能性もあるため。

③お金【nedan】引数円を入れる。※お金が変わるかもしれないため。

④【kaumono】引数のボタンを押す。※コーラ以外のものを買ってきてもらうかもしれないため。

⑤【kaumono】引数を取る。※↑の④と同じ理由

⑥家に帰ってくる。

  • 逆に【絶対に変わらない値】は引数にする必要はありません。
    • (※無意味な引数を増やすとややこしくなるだけです)
  • たとえば、今回のケースでは【玄関】【家】などは引数にしていません。

関数(かんすう)

  • 大事なのは【なにを引数(ひきすう)にすれば良いのか?】というところです。

  • これを自分で判断(はんだん)できれば、関数の作り方はマスターしたも当然です。ちゃんと理解しましょう。

  • 基本的(きほんてき)に引数にするのは【変更する可能性(かのうせい)のある値】です。

  • 先ほどの【買ってきてもらう関数】でたとえると、下の感じです、

var a = 100;←関数の外で作った変数は…
function sukopu(){ 
    console.log(a);←関数の中で使える!
 }  

sukopu();
※↑ちゃんと100と表示される。
function sukopu(){
    var a = 0;←関数の中で作った変数は…
}

console.log(a);
※↑外からは使えない!エラーになる。

  • さて、関数の意味や、便利さを理解できたでしょうか?
  • 少し話が変わりますが、プログラミングには【スコープ】というものがあります。​
  • スコープとは「変数の参照(見れる)できる範囲(はんい)」の事で、具体的には、スコープので変数を作ると、スコープのからは「その変数は見られない」というものです。
    • ※【見られない】というのは【使えない】ということです。
  • jsの場合は【関数がスコープ】になっていて【関数の中で作った変数は、関数の外から使えません
  • 下のコードをみてください。

関数(かんすう)スコープ

var a = 0;←ここで変数aを作った。スコープの外のなので、グローバル変数のaが出来た。
function sukopu(){
    var a = 10;←また”宣言”(せんげん)したので、今度はローカル変数のaが出来た。
    console.log(a);
}

sukopu(); ※←ここでは、ローカル変数のaが出力されるため10と出力される。
console.log(a); ※←ここでは、グローバル変数のaが出力されるため0と出力される。
var a = 0;←ここで変数aを作った。スコープの外のなので、グローバル変数のaが出来た。
function sukopu(){
    a = 10;←ここでは、宣言していないので、グローバ変数のaに10が代入されるだけ
    console.log(a);
}

sukopu(); ←この関数を使うことで、グローバ変数のaに10代入されるので、10と出力される。
console.log(a);←ここでもすでに、グローバ変数aは10になっているので、10と出力される。
  • 関数ので作られる変数を【グローバル変数】と言い、
  • 関数ので作られる変数を【ローカル変数】と言います。
  • また、下のコードのように、スコープの中で、同じ名前の変数を宣言すると、別の変数が作られることになります。ちょっとややこしいですが、下のコードの違いを理解してください。

関数(かんすう)スコープ

  • 先ほどやった引数は、動きとしてはローカル変数そのものです。関数のスコープの中だけでしか使えません。
  • ただ、関数を呼び出す時に、同時に値を伝えることが出来るところだけが違います。
  • 言い方を変えれば、【関数スコープの外から、ローカル変数をイジれる(代入できる)仕組み】と言えます。
    • まぁここらへんは難しいので、今は理解できなくて問題ありません。

関数(かんすう)スコープ

お疲れ様です!

  • ここで、JS基礎編(きそへん)は終わりです!
  • 次は実際に、WEBサイトでJSを動かしていきましょう!
  • 【DOM操作】へすすむ

お疲れ様です!

JavaScript入門2

By kinocode

JavaScript入門2

  • 1,354