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件)
- ホワイトペーパー
- 企画特集
- 話題のタグ
Webデザイン
iPhone
インストール
仮想化
java
ソフトウェア開発
Flash
Chrome
Database
Safari
マイクロソフト
UI
データベース
iPod touch
Mac OS X
小技
Microsoft
Apple
CSS
Windows 7
Opera
google
Off Topic
Windows XP
php
javascript
クラウド
Firefox
HTML
Windows
アプリケーション
RIA
オープンソース
Firefox 3
Windows Vista
脆弱性
Webサービス
ブラウザ
Internet Explorer
セキュリティ
プログラミング言語
Ajax
OS
リファレンス
iPhone 3G
Mozilla
WebKit
Tips
linux
開発環境
話題のタグを見る »
SQLite対応アプリのデータベースファイルを閲覧する
グーグル、「Google Buzz」を発表--Gmailのソーシャル機能を強化
「H.264」ストリーミングのロイヤリティ無料期間が延長
マイクロソフト、「Office 2010」のRC版をリリース
アンケートから見るセキュリティ対策の実態
仮想化をダメにするストレージの実態
利用者の理想を追求した最新レンタルサーバ
身近な業務をCRMが変革!
通販サイトのアクセス集中からの危機を救う
新しい視点のレンタルサーバが誕生!
アプリケーション仮想化 3つの課題
仮想環境のバックアップは難しいのか
御社はまだフリーの転送サービスですか?
経営統合後の事業損益構造の見える化を実現
DBのパフォーマンスに困ってませんか?
レガシーアプリケーションの稼働どうしてる?
事例 VMwareでデータセンターをクラウド化
Xbox Live インディーズゲーム開発の軌跡