javascriptを用いたプログラミングの複雑さに苦しめられている人は(僕を含め)非常に多いんではないかと思います。
javascript 自体は、それほど複雑な言語じゃありません。
癖があるとしたら、
- プロトタイプベースのオブジェクト
- クロージャ
- レキシカルスコープ
といった辺りだと思います。
で、何かをやろうとしてソースコードを探すと、大半は jQuery を使ってると思います。
jQuery は、先の三つが満載で、かつ、ライブラリも豊富なので、それぞれのライブラリの使い方も知らなきゃいけない、と。
そういったソースを読めるようになるためには、単純な jQuery を使うコードを理解していくのが良いと思います。
jQuery のリファレンスは、単純なコードが併記されています。
まずは、jQuery Core の辺りから読んでいけば良いのではないかと思います。
http://api.jquery.com/
http://semooh.jp/jquery/
例えば、こんなん。
http://api.jquery.com/each/
<html>
<head>
<style>
div { color:red; text-align:center; cursor:pointer;
font-weight:bolder; width:300px; }
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div>Click here</div>
<div>to iterate through</div>
<div>these divs.</div>
<script>
$(document.body).click(function () {
$("div").each(function (i) {
if (this.style.color != "blue") {
this.style.color = "blue";
} else {
this.style.color = "";
}
});
});
</script>
</body>
</html>
英語のページですけど、ソースを読む分には、理解の妨げになることは無いでしょう。
jQuery 本体のコードは、jQuery を使ったソースが読めるようになってから、じゃないととても無理です。
jQuery の中でも、Core API などをバンバン使ってますし、複数のブラウザで動作するためのコードとかもあるので。
クロージャについては、jQuery を使ったソースを読むうちに、何となく分かってくると思いますが、レキシカルスコープについては、コードを読んでいるだけでは分かるようにならないと思うので、理屈は抑えておいた方が良いです。
以下のページは、簡単なコードを添えて、スコープについての説明をしています。当面は理解できなくても良いとは思いますが、こういうことがあるんだ、程度でも抑えておくと、ソースを読む助けになります。
http://d.hatena.ne.jp/susie-t/20070719
http://d.hatena.ne.jp/replication/20100309/1269052178
初心者が読んでも さっぱりできない上級者しか理解できないコードが ステキ?
さて どちらでしょうか?
JavaScriptが難しいのではなくて、HTMLやCSSを使いこなすのが難しい場合もありますしね。
真面目に答えるなら、JavaScriptでステキなものが書けるようになるよりも、jQueryなどの既存ライブラリを使える人になる方が、よっぽど役に立つのではないかと思ったりもします。