Pages

.

40代からのJavaScript 入門3:関数に一喜一憂 ドットインストールで学習#11-#14



 40歳代から始めるJavaScriptの学習記録の第3回です。ドットインストールJavaScriptも11回から14回となり中盤に差し掛かってきました。前回は真偽値につまづきながらも、MSX-BASICでおなじみだったfor文も出てきて、その違いを楽しめました。

(参考)40代からのJavaScript 入門2:真偽値でつまづく ドットインストールで学習#7-#10 

 ちなみに私のドットインストールの勉強法は・・・

  1. 最初は止めずに一気にみる。
  2. 2回目はわかりにくかった所を止めながら見る。
  3. 3回目は板書をコメントも含めて自分で入力しながら見る。

 という感じです。実際には3回だけじゃなくて、それぞれのステップで何度か見ます。さらに随時ブログ用の感想メモを取るのですが、これが結構効果的なんですよね。まさに備忘録という感じで記憶の定着になります。中年のプログラム入門には記録が必須ですね。

 ただ、そこまでやると1課につき20分〜1時間はかかっちゃいますけどね。

カンタン命令でダイアログボックス表示


#11 alert、confirm、promptを使おう


 これはダイアログボックスを出す命令かぁ。こういうのは当然MSX-BASICにはなかったよね。具体的な利用シーンがイメージしやすいです。パソコンを操作してるって感じがして楽しいね。

alert 注意を表示/confirm OK,キャンセルを確認/prompt 入力させる

*プロンプトって〜させるって意味だったのね。DOS画面のプロンプトって特に意味も考えずに覚えてたけど。

おお、関数ってすごい便利そう!


#12 関数を使ってみよう

 これは驚いたなぁ。PCで関数っていうとエクセルのイメージだけど、MSX-BASICではちょっと特殊なものってイメージでしたね。

 でもJavaScript(というか今のプログラミム言語)では、『処理をまとめたものに名前をつけてカンタンに使い回せるようにする』ってこと・・・でいいのかな?

 つまり、MSX-BASICでいうサブルーチンを更に便利にしたものかな?間違ってたら恥ずかしいけど。関数を呼び出すだけでいいのなら、指定行へ飛ばすgoto文も必要ないし、そもそも行番号も必要ないよね。なるほどね〜。

function 関数名 ( 引数 ) { 処理 }

 引数(ひきすう)と返り値はちょっとモヤモヤするな。とりあえず引数オプションと覚えておけば良いのかな。返り値は正直つかみ所がないなぁ・・・。

 ちなみに行番号が不要といっても間違えると何行目がエラーだと教えてくれるのでエディタの行表示で確認すれば不便はないんですね。

 講座では関数名のhalloと文字列のhalloが同じなのでこんがらがってしまう気がする。ちなみに変数名のgreetは挨拶の意味なんだね〜(高校1年レベルを忘れてる・・・)

 解説でも言ってるけど、これだと単純すぎて却って便利さがわからないね。ただ冗長になってるだけ。応用で便利さがわかるんだろうけどね。

あれ、関数ってちょと難しいかな・・・


#13 ローカル変数を使おう

 ローカル変数の説明はわかります。関数 (function)の中で定義した変数 (var)は、その関数内でのみ有効って事だね。

 でもその後の、関数を変数に入れるってのが・・・わかるけど、ちょっとモヤモヤする・・・。なんだろうこれ、伏せたカップにコインを入れてシャッフルする手品を見ているみたいで・・・・こんがらがってくるなぁ。

var 変数 = function 関数名省略可 ( 引数 ) { 処理 };
(関数を変数に入れると式になるので最後にセミコロンを忘れない)

 今の段階だと抽象的だから仕方ないね。具体的になったらわかるんでしょう。説明のとおり今はこういう書き方があるんだなぁ程度で流しておきます。

おお、関数って・・・();・・・なんじゃこりゃ


#14 即時関数を使ってみよう

 うおーわかりにくくなって来た〜。完全にこんがらがったので一旦終了。頭がスッキリしている時に何度か見返してようやく理解できました。
( function 関数名省略可 ( 引数 ) { 処理 } ) ();
関数を( )で囲むと即時関数になり、直後に();ですぐ使える

 でたでた、『();』。ゼロじゃないよ、( )セミコロン。ほとんど絵文字っていうか、ネットスラングで言えば(笑)の略だよね。最近のプログラムみるとこんな意味不明な記号の羅列でびっくりするけど、こういう意味でしたか・・・。

 でも、まあこれはわかるんです。でも後半の方はこんがらがってきました・・・。つまり、即時関数ってのは次の2つの利用法があるって事なんですね?

  1. 文字通り定義してすぐに使う関数として
  2. 長いプログラムで、他の部分に影響を与えないような安全地帯の設定として

 1はいいとして、2の利用法は、関数内の変数がローカル変数になる事を逆手に取った応用法ですね。本来の利用法とは違うけど広く利用されているみたいですね。

 とりあえず関数の基本は終了。応用範囲が広いために理解が難しいけど、使っていくうちに理解していくしかないね。便利そうなのはわかりました!

 次回以降はいよいよ、配列オブジェクトメソッド・・・MSX-BASICには無い概念。難しそうですが楽しみでもありますね。

(続き)40代からのJavaScript 入門4:オブジェクトと格闘 ドットインストールで学習 #15-#18

他の『JavaScript学習記録』の記事を読む
『アニメ』『スピーカー』『オーディオ・ビデオ』『備忘録・Mac・その他』『生活』

No comments:

Post a Comment