JavaScriptによる簡単なプログラミング

2013年06月27日 15:45
渡辺隆行
http://www.univ-web.org/nabe/lec/InfoSys/JS/JavaScript.html

JavaScriptとは

JavaScriptの起源は,ウェブページの処理能力を高めるためにNetscape社が開発したスクリプト言語です.その後,いくつかの段階を経て,ヨーロッパの標準機関ECMAが1997年にECMAScriptとして標準化しました.テキストエディタさえあれば誰でもJavaScriptのプログラムを書くことができ,ほとんど全てのブラウザはJavaScriptをサポートしているので,そして無償で公開されているJavaScriptのライブラリを使えば素敵なこと(楽しいこと,インタラクティブなこと)ができるので,プログラミング入門用の言語としても適していると思います.

JavaScriptは非常に多くのことができるので,ウェブに欠かせない技術となりました.Web 2.0といわれる現代,RIA (Rich Internet Application)が普及し,パソコンにアプリケーションをインストールしなくても,ウェブだけでメールを読み書きしたりワープロや表計算やプレゼンテーションが使えるようになっています.JavScriptを用いることでユーザがウェブページをインタラクティブに利用できるようになり,ウェブのユーザビリティが向上しました.(不適切な使い方をすると,使いにくいウェブページになってしまうことにも注意されたし.)2010年代が進むにつれて,ウェブ技術がOSを置き換える勢いですが,そこでもHTML5やCSS3と並んでJavaScriptが重要な役割を果たしています.

JavaScriptは,単なるスクリプト言語ではなく,マウスがクリックされたとかボタンを押したとかのイベントを拾ったり,ウェブページのDOM (Document Object Model)を操作してダイナミックにページを書き換えたりすることもできます.Ajaxと呼ばれる技術と組み合わせることで,動的なウェブやインタラクティブなUIが実現しました.Google Mapが登場したとき,JavaScriptがもたらす影響の大きさに驚きました.

注:JavaとJavaScriptは呼び方も基本的な文法も似ていますが異なる言語です.

イベントを拾ってウェブページに変化をつける例

JavaScriptを使った例として,リンクをポイントすると色が変わる例をお見せします.

リンクの上にマウスが来ると,onmouseover というイベントが発生します.そのイベントを拾って,CSSを変更して色を変えています.

a要素の中に,文字の色や大きさを変更する命令を直接書き込むこともできます.

インタラクティブなサイト構築の例

アプリケーションのように動作する動的なWeb(RIA)にはAjaxという機能が使われています.Ajax用に用意されたJavaScriptのLibraryを使うと,目次やタブパネルなどのナビゲーションに役立つ機能をはじめとして,写真を表示する際に有効な機能など,ユーザビリティを画期的に向上させるインタラクティブなサイトを構築することができます.詳細は割愛しますが,いくつかの例を示します.

JavaScript実習

簡単なJavaScriptを使って,プログラミングの勉強をしましょう.JavaScriptはどのブラウザでも動作するので,Windowsならメモ帳(や秀丸やNotepad++)などのエディタ,Mac OS XならスクリプトエディタやJEditなどのエディタでプログラムを書いて,プログラミングの勉強をすることができます.

  1. 基本編:「HTMLファイルにJavaScriptのコードを埋め込む方法」(JavaScriptTemplate.html)を各自のデスクトップにダウンロードしてから,ブラウザで表示してください(いきなりalertウィンドウが出てきますがOKボタンを押すと全ページが表示されます.) ブラウザで見るとどこにJavaScriptが書かれているかわかりませんが,ソース表示にしてみると,或いはエディタでこのファイルを開くと,JavaScriptがHTMLファイルに埋め込まれているのがわかると思います.
  2. 初級編:色々なJavScriptの命令を書いてみましょう.ブラウザで「JavaScript実習」を開いてください(立て続けに色々なウィンドウが表示されますが,最初は気にせず適当にボタンを押して構いません.) ソース表示にするとJavaScriptの例がわかるので,プログラミングの練習として,先ほどダウンロードしたJavaScriptTemplate.htmlに自分でその命令を書いてみましょう.HTMLファイルを編集して保存,ブラウザで表示或いは再読込,という手順になります.
  3. 中級編:前期にお見せしたアルゴリズムです:

宿題

提出課題

授業中に配付する紙の穴埋め問題を提出課題にします.提出日時は授業中に指示します.

任意課題

2回だけの授業でプログラムの基本をマスターするのは難しいので提出課題にはしませんが,興味がある人は以下の問題を解決するプログラムをJavaScriptで書いてみてください.自分でプログラムを書くおもしろさを少しでも感じてもらえたら嬉しいです.

  1. ユーザが入力した二つの数nとmの平均を求める.
  2. ユーザが入力した値の絶対値を表示する.
  3. ユーザが入力した二つの数nとmの商(n/m)を求める.ただしmが0の時は商を計算せず,「0では割れません」と表示する.
  4. 1から10までの整数の合計を求める.
  5. 現在時刻が午前中なら「AM」,午後なら「PM」と表示する.
  6. ユーザが入力した二つの数nとmの最大公約数を求める.(ヒント:「ユークリッドの互除法」を使う)
  7. ユーザが入力した10進数を2進数に変換して表示する.

デバッグ

JavaScriptなどのプログラミングでは,一文字でも間違えると動いてくれません.でも最近のウェブブラウザは,スペルミスを指摘するワープロのようなdebug機能を備えているので,それを利用することもできます.少し難しい内容になるので授業では扱わないし,ブラウザによってdebug方法が異なるし,debug用の便利なアドオンもありますが,たとえば下記が参考になると思います.

「ビギナー向けデバッグツールで効率的に開発しよう」


クリエイティブ・コモンズ・ライセンス© 2013, Takayuki Watanabe Valid XHTML 1.0 Strict