気の向くままに辿るIT/ICT/IoT
webzoit.net
JavaScript

JavaScript / ECMAScript ECMA-262 5.1ベースの構造的な文法

ホーム前へ次へ
サイト内検索
カスタム検索
ECMAScriptベースのJavaScriptとは?

JavaScript / ECMAScript ECMA-262 5.1ベースの構造的な文法

JavaScript / ECMAScript ECMA-262 5.1ベースの構造的な文法

 JavaScriptの構造的な文法としてブロック、コメント、条件文、反復文、ラベル付き文、try/throw/with/debugger 文、セミコロン、変数、関数、演算子などとECMA-262 第5版から導入されたstirctモードなどがあります。

ECMAScriptベースのJavaScriptリファレンス

ECMAScript / ECMA-262 Edition 5.1 日本語訳

ECMAScript / ECMA-262 第 5.1 版 訳

JavaScriptはプロトタイプベースのオブジェクト指向スクリプト言語

 オブジェクト指向プログラミング言語であるC++やJavaがベースということでJavaScriptもオブジェクト指向もしくはオブジェクト指向風の構造になっています。

 風というのは、C++やJavaといったオブジェクト指向プログラミング言語とJavaScriptの構造は、ぱっと見には微妙に、良く見るとかなり相違がある上、JavaScriptのそれは、一般に言われるオブジェクト指向の概念と少しばかり異なると思われる点もあるからです。

 初期のJavaScriptにおいて微妙な相違点の1つとしては、オブジェクト指向のスクリプティングも手続き型のスクリプティングも可能であるとしている点が挙げられます。

 というのもJavaはともかくC++やJavaScriptでは、その構造上、オブジェクト指向のプログラムになるか否かは、開発者というか、人に依存するところであり、オブジェクト指向的思考を以って設計やコーディングをしないとオブジェクト指向ではない手続き型や関数型のプログラムになってしまう可能性があり、Javaと比べた時のガベージコレクションとは、また別にC++は、一般にその点が、複雑で一貫性を図りにくい為、デメリットであると捉えられがちであることとは対照的です。

 但し、ECMAScriptベースのJavaScriptにおいては、「プロトタイプベース」のオブジェクト指向スクリプトという位置づけになっています。

 それが最も大きな違いの1つとなっており、C++やJavaなどにおいてオブジェクト指向といわれる場合、「クラスベース」であるという認識が一般的です。

 前者は、クラスというライブラリがあり、new 演算子を伴うオブジェクトを変数に代入するとオブジェクトのコンストラクタによって初期化されたインスタンスが生成され、そのインスタンスは各クラスからプロパティを永続的に継承し、同一のオブジェクトから生成される場合、あっちのインスタンスも、こっちのインスタンスもそのプロパティは同一ですが、後者には、クラスがなく、new 演算子を伴うオブジェクトを変数に代入するとオブジェクトのコンストラクタによって初期化されたインスタンスができ、プロパティも継承はされますが、動的にそのインスタンスのプロパティに値を代入できたりするので元のオブジェクトが同じでもあっちのインスタンスとこっちのインスタンスでは、プロパティの属性が異なるということも起こり得る点が大きく異なります。

 また、後者は、基本的に全てのオブジェクトが、prototypeというプロパティを持ち、オブジェクトを拡張することができるようになっています。

ECMAScriptベースのJavaScript情報

ECMAScript / ECMA-262 Edition 5.1 日本語訳

ECMAScript / ECMA-262 第 5.1 版 訳

JavaScriptサンプルプログラムとサンプルソースコード

-->

ホーム前へ次へ