2007年06月30日

functionを使ってみた。

ここのところ忙しかったのですが、ちょこっと時間ができたのでJavaScriptの勉強の続き。

ヒシゲーさんみたいに現役バリバリのエンジニアがコメントをくれる状況でこんな初歩的なことを書くのも恥ずかしいんですが、もともと専門外なのでご容赦。あ、でも私に分かる範囲でアドバイスがあればどんどんお願いしますね。

さて、はfunctionというのがうまく使えないところで引っかかっていました。functionというのは、メッセージボックスを出す「alert」とか、イエスかキャンセルを選択できる「confirm」というメソッドなどを、使いたい順番にまとめておいて、後から呼び出す機能だと理解しています。

で、前にうまくいかなかったのは、ヘッドの部分に「function pinpon()」などと書いておくのはよかったのですが、本文で呼び出すときにもそのまま「function pinpon();」とか書いていたからです。呼び出すときは「function」を取って「pinpon();」だけでよかったんですねえ。知らなかった。

こういうときに、JavaScriptだとウェブ上に例文がたくさん転がっているので、書き方を比較して自分の間違いを探すのは簡単ですね。しかも、きちんと機能するかどうかの検証もブラウザがあればすぐにできるし。自然言語(日本語とか)の独学よりは、JavaScriptの独学の方がずっと簡単そうです。(その割には進歩していませんけど)

で、どう改善したかというと、こんな感じです。
改善前
if(confirm("一日=ついたち?")) {tokuten = tokuten + 1; alert("ただしいです! とくてん="+tokuten);} else alert("ちがいます! とくてん="+tokuten);

if(confirm("二日=ふっか?")) {alert("ちがいます! とくてん="+tokuten);} else {tokuten = tokuten + 1; alert("ただしいです! とくてん="+tokuten);}

ここでは、得点が一つ増えて、「正しいです。とくてん=  」と表示するという正解の場合の処理と、得点を増やさずに「ちがいます。とくてん= 」と表示する誤答の場合の処理が、「一日」の場合と「二日」の、それぞれ二回書かれています。実際のコードでは、これが「十日」まで十回かかれているわけです。

同じことを十回も書くのは面倒くさいし、ひらがなの「とくてん」というのを漢字の「得点」に書き直そうとしたら、全部書き直さなくてはならないくて、不便です。なによりカッコワルイ。

で、それをfunctionを使って最初に指定しました。
function pinpon(){
tokuten = tokuten + 1;
window,alert("ただしいです! とくてん="+tokuten);
}
function buu(){
alert("ちがいます! とくてん="+tokuten);
}

で、本文ではこんな感じにしました。
if(confirm("一日=ついたち?")) {pinpon();} else {buu();}

if(confirm("二日=ふっか?")) {buu();} else {pinpon();}


書き方が変わっただけで、処理している内容は前からまったく進歩していないので、使う側から見ても、まったく同じです。でも、簡単な書き方が分かったので、もっと長いコードも書けるし、メンテナンス(間違いの修正など)も楽になりました。

試作品はこちらです。「一日」から「十日」の漢字の読みを練習する簡単なものです。
KanjiFunction.htm

ここまでの勉強に使った時間というのは、だいたい外国人が日本語の平仮名と片仮名を覚えるぐらいの時間でしょうか。奥の深さに関しては比較することができませんが、少なくとも学習の入り口に関しては、日本語学習よりもjavascriptの学習の方がコストパフォ−マンスが高いように感じています。

このブログ中で関連あるエントリー
得点を計算してくれる二択のクイズ
http://mongolia.seesaa.net/article/42925722.html

確認ウィンドウを出してみた。
http://mongolia.seesaa.net/article/42611315.html

超簡単! javascriptで漢字学習
http://mongolia.seesaa.net/article/42497114.html

posted by 村上吉文 at 05:41 | Comment(0) | TrackBack(0) | 日記 | このエントリーをはてなブックマークに追加
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック