あと味

たくさん情報を食べて、たくさん発信すると、あとになって味わい深い。

不定期でオライリーのJavaScript第5版の読書メモを書くことにする

続くかどうかはわかりませんけど、不定期でオライリーJavaScript 第5版の読書メモを書こうと思います。
第1部は読んでいるものの、まったくアウトプットしてないので、たぶんほとんど頭に入ってない。第2部以降はほとんど読んでません。

いろんなブログで読書メモを見かけるので、私も見習いたいと思います。

一応目標も決めないといけないですね。ということで以下が目標です。

目標

  • JavaScriptを人に教えられるようになること

単純ですけど、人に教えるにはもっと勉強しないといけないので、妥当な目標かなと思います。私の場合、実務で使わないし。

進め方

ある程度の分量を読んで、その後、アウトプットしていきます。JavaScript 第5版の目次に沿って書いていこうと思います。

アウトプットする内容は、その章に関してのことで、既存の知識、新たに知ったこと、調べたこと、疑問に思ったことなど適当に書いていく予定なので、第三者が見ても役に立たないことは多々あると思います。

アウトプットした記事は以下の目次に加えていくことにします。

1章 JavaScriptの概要 - JavaScript第5版読書メモ

まずは1章から。

JavaScriptの概要

オブジェクト指向インタプリタ言語。
JavaScriptPerlとかLispっぽい。でも書き方はCとかJavaっぽい。

主にブラウザ上にて動作する。インタプリタが内蔵されてるソフト(エディタ、画像編集ソフト等)でも動作する。
言語仕様は国際標準で規定されている。

JavaScriptとは何か?

JavaScriptJavaは全然違う。元々はLiveScriptって名前だったけど、Javaが流行ってたからその流行にのっとってJavaScriptに改名しただけ。

「Live亭Script、Java亭Scriptを襲名!」みたいなもんか。でも、Java亭で芸は学んでいない。芸名が定着しちゃって直すのメンドイからそのままって感じ。細木数子に相談にしに行ったら、あっさり名前が変わっちゃうかもしれないってくらいJavaって名称に愛着はないと思われる。

名前の由来についてはWikipediaJavaScriptに載ってた。誕生って項目。

本名はECMAScript(イクマスクリプト、もしくはエクマスクリプトと読む)らしい。

JavaScriptが簡単ってのは語弊があって、普通に難しい。でも、とっつきやすいし、確かに他の言語に比べれば簡単なのかもしれない。

JavaScriptのさまざまなバージョン

ECMAScriptとして標準化されている。FlashのActionScriptや、MicrosoftのJScript.NETもそれに従っている。
ちなみにIE上で動くECMAScriptJavaScriptではなく、JScript

クライアントサイドJavaScript

クライアントサイドJavaScriptとはJavaScriptインタプリタを、ブラウザに組み込んだもの。

クライアントサイドJavaScriptECMAScript + DOM

IEはDOMの仕様を公式にはサポートしてない。IE氏ねという声が聞こえる所以。確かにサポートするかしないかは自由だろうけど、戦うべき戦場を吐き違えてる気がする。標準に則った上で、性能や機能で戦えばいいのに。とは言いつつも、IEの暴走でJavaScriptが進化したことがあるのも事実。

クライアントサイド以外のJavaScript

MicrosoftのIISでもJavaScript(JScript)が動く。さらに、ブラウザ以外でもインタプリタを内蔵しているソフト上で、JavaScriptは動く。Photoshopの自動化処理に使ったり、EmEditorとか萌ディタ等のマクロの記述ができたりする。
あと、ブラウザ上で動くとは言え、ある意味Googleが提供するGoogle Maps等もそのひとつと捉えてもいいかも。Google Gearsはオフラインでも動く。

純粋なサーバーサイドJavaScriptもあるよう。語弊はあると思うけど、JavaScriptでCGIを書くってイメージ。DreamweaverっぽいIDEを出してる、AptanaのJaxerはJavaScriptをサーバーサイドで実行できるWebサーバー。

サーバーサイドのJavaScriptが実現すると、今フロントエンドエンジニアでバリバリやってる人はますます活躍の場が広がりそう。

JavaScriptの学習方法

FireBugSafariの開発ツール使うと良いと思う。

FireBugについてはid:HolyGrailさんの以下の記事が参考になる。

とりあえずはHTMLの調査の方法と、エラーの確認方法と、コンソールの使い方を覚えればOKだと思う。