JavaScriptクィックスタート
白石俊平(あゆた)
2007/12/13 18:00
JavaScriptの変化は目覚ましいものがあります。この連載ではJavaScriptの基礎からはじめ、Dojoのソースコードリーディングによる深い理解までによって、JavaScriptを理解することを目指します。
Ajaxの登場は、JavaScriptと言う言語にとって凄まじい変革をもたらしました。
それまでは、Webページに多少の動きを持たせて利便性を向上する、といった程度でしか認知されていなかったJavaScriptですが、今やそうではありません。次のような理由から、ブラウザ上で動作するリッチクライアントを作成するための、最も一般的な言語として捉えられています。
- 主要なブラウザのほぼ全てが標準でサポートし、しかも最初から有効になっている
- 厳しいセキュリティの下で動作するため、ユーザにとって安全
- 簡潔で柔軟な言語仕様により、短いコードで多くを実現できるうえ、可読性も高い
- フレームワークの整備による生産性の劇的な向上
- 非常に長い歴史を持つ技術であり、開発者の人口が非常に多い
しかし、近年におけるJavaScriptの変化は目覚ましいものがあります。筆者自身のJavaScriptコードを見ても、この数年で全くスタイルが変わりました。
例えば、以下のようなボタンがあるとして、body.onload() のタイミングでイベントハンドラをつけ加える、と言う処理を考えてみましょう。
<form> <input type="button" id="bt" name="bt" value="クリックしてください!"> </form>
このボタンがクリックされたら、ボタンのラベル自体が変化すると言う処理を行います。むかーしむかしは、以下のようにしていました。
function init() {
var button = document.forms[0].bt;
button.onclick = button_clicked;
}
function button_clicked() {
var button = document.forms[0].bt;
button.value = "クリックしてくれてありがとう!";
}
そのうち、以下のように。
function init() {
var button = document.getElementById("bt");
// IEではaddEventListenerは動かない
button.addEventListener("click", function() {
button.value = "クリックしてくれてありがとう!";
}, true);
}
今では、例えばPrototype.jsというフレームワークを使えばこんな風です。
function init() {
$("bt").observe("click", function() {
$("bt").value = "クリックしてくれてありがとう!";
});
}
Dojo Toolkitというフレームワークを使うならこんな感じ。
function init() {
dojo.connect(dojo.byId("bt"), "onClick", function(ev) {
ev.target.value = "クリックしてくれてありがとう!";
});
}
これほどコーディングスタイルに変化が起きているのに、JavaScriptの言語仕様自体は、2000年以前からほとんど変更されていないのです。実に驚くべきことではないでしょうか。
- 特集: JavaScriptのイロハ (19件)
- 4日前のトップ記事
- 5日前
- 6日前
- 7日前
- 8日前
- ホワイトペーパー
- 話題のタグ
セキュリティ
Firefox
Tips
リファレンス
開発環境
iPhone
ソフトウェア開発
ブラウザ
仮想化
Ajax
脆弱性
Linux
Opera
Google
HTML
Off Topic
Java
Firefox 3
Safari
Database
JavaScript
Webサービス
データベース
OS
インストール
CSS
Apple
アプリケーション
Windows Vista
iPod touch
オープンソース
UI
Mac OS X
Microsoft
Internet Explorer
Windows XP
iPhone 3G
クラウド
Webデザイン
WebKit
Windows
マイクロソフト
Windows 7
RIA
Chrome
Mozilla
モバイル
Flash
小技
プログラミング言語
話題のタグを見る »
MS運営のオープンソース開発プロジェクト支援サイト「CodePlex」を探検する(2)
Snow LeopardではNTFSをサポート--その源流を訪ねる(1)
フォトレポート:「Windows Server 2008 R2」--あまり知られていない有用な機能10選
マイクロソフト、「Office 2010」ベータ版を開発者向けにリリース
電力に"ふた"をする独自の省エネ機能とは!?
―エン・ジャパン厳選求人☆毎週更新―
【最終警告】パンデミック対策特集
高まるiSCSIストレージへの注目度
企業ITシステムの企画、構築、運用のイロハ
100万円で実現!中小企業の情報漏えい対策
大丈夫?あなたの会社のセキュリティ対策