javascriptについて

javascriptの解説の方針

かつてのjavascript対JScriptほどではないが現在もブラウザ間で互換のとれない部分があるようだ。ウェブページ作成のための必要最低限の機能について互換を確認して、その範囲でプログラムを組んでいく。

作成過程でどうしても必要最低限は拡大していくがそれは仕方がない。

言語仕様も変わっていき、ウェブ技術も変わっていくので、形にこだわらず動けばいいというのは賢い姿勢と思うが、応用の広さや合理性、美しさも採用の基準に加える。

jQueryやReact.jsなどのライブラリやフレームワークのたぐいは使わず、素のjavascriptとhtml5,cssの範囲で構築する。

ブラウザの違いや、モバイルかどうかでプログラムを切り替えることはしない。

私的なjavascriptの歴史

htmlやcssとの関わりは1999年あたりからです。W3Cの文書で標準を学びましたが、javascriptについてはブラウザごとに大きな差があり、用途も限られた上にflashやjavaなどの他の選択肢もあり積極的に使っていく動機がありませんでした。

2009年ごろ「DOM Scripting 標準ガイドブック」(Jeremy Keith著、吉川典秀訳、中村享介監修)を読みました。今調べると出版は2007/6/21だったようです。当時なにかと足かせになっていた Internet Explorer(IE) でもかなり共通で使えるし、用途の幅が広がることがわかりました。

それでも互換性で若干の注意が必要でした。たとえばsetAttribute()はIEでは使えませんでした。各ブラウザの独自仕様はもとより使うつもりはありませんでした。innerHTMLはよく知られた方法でしたがIEの独自仕様です。代わりに.firstChild.nodeValueを使うことにしました。

今回久しぶりに調べてみると、仕様も互換状況も変わってきていますので、確認する必要を感じています。

暫定的リンク集

javascriptの文法を調べるのに一つの仕様書を読めば良いというわけではないので面倒です。とりあえず現時点で使えそうなものを置きました。今後加除があるかもしれません。

Ecmaインターナショナル

国際的な標準化団体。旧名は欧州電子計算機工業会。

Standard ECMA-262(英文)

ECMAScript® 2017 Language Specification (ECMA-262, 8th edition, June 2017)(英文)

MDN

Mozilla Developer Network (MDN)のページ FireFox系です

MDN Documentation status 多数のドキュメントの入り口(JavaScript, HTML, CSS,...)

MDN JavaScript その中のjavascriptのチュートリアルとリファレンスの入り口

MDN JavaScript リファレンス リファレンスの入り口

MSDN

Microsoft Developer Network (MDNと似ているのですが...標準としてはあまり期待していない)

MSDN JavaScript リファレンス リファレンスの入り口

W3Cschools

W3Cがウェブ上に作ったチュートリアルです。英文ですが、かなりよくできています。

W3C JavaScript Tutorial javascriptの入り口(英文)

W3C JavaScript HTML DOM HTML, DOM を含んだ入り口(英文)

日本語訳も選べますが、機械翻訳です。英文で読むほうがわかりやすいです。"With the object model, JavaScript gets all the power it needs to create dynamic HTML: "⇨「オブジェクトモデルを使用すると、JavaScriptはそれがダイナミックHTMLを作成するために必要なすべての電力を取得します。」

DOM

DOMは会社・団体名ではありません。javascriptをウェブページで動かすためにはウェブページの構造が見えなければなりません。その仕様はjavascriptの一部ではなく、DOMです。HTML同様、W3Cが標準化していま(す/した)が、WHATWGとの間に微妙な関係があります。

W3C DOM4 (英文)

WHATWG DOM Standard (英文)

WHATWG DOM Standard 日本語訳