内容へ移動
Cat Paw Software
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
ecmascript
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== ECMAScript ====== **引っ越し&見直し中** ECMAScriptはEcma Internationalによって標準化されたスクリプト言語。ブラウザ上で動作するJavaScriptの言語仕様である。 * [[http://www.ecma-international.org/publications/standards/Ecma-262.htm|ECMA-262 5th Edition]] * [[http://www.ecma-international.org/publications/standards/Ecma-262-arch.htm|ECMA-262 Archives]] 2015年9月時点での最新の仕様はECMA-262 6th Edition * [[ecmascript:es5|ECMAScript 5th Editionでの追加機能]] * [[ecmascript:es6|ECMAScript 6th Editionでの追加機能]] * [[ecmascript:es7|ECMAScript 7th Editionでの追加機能]] ===== 特徴 ===== * 動的型付け * プロトタイプベース(インスタンスベース)オブジェクト指向 * ファーストクラス関数/クロージャ * 非同期処理、イベント駆動型 多くの処理系がシングルスレッドであり、I/O待ちの間にCPUバウンドな処理を実行することで処理効率を向上させる。このため計算量の多いプログラムでは実行効率が低下することが多い。 イベント駆動型の非同期処理はコードが処理が追いにくく複雑になりやすいが、クロージャによって容易な記述が可能になる。 ==== プロトタイプベースオブジェクト指向 ==== Java等のオブジェクト指向はクラスベースのオブジェクト指向と呼ばれる。一方、JavaScriptはプロトタイプベース、あるいはインスタンスベースオブジェクト指向と呼ばれる。 クラスベースは、まず振る舞いとデータをクラスとして定義し、クラスを型とするインスタンスを作成する。そしてクラスで定義した操作を組み合わせてプログラミングする。プロトタイプベースでは、まずインスタンスを作成し、そのインスタンスに独自の性質を付加してプログラミングする。また別のインスタンスをプロトタイプとすることでプロトタイプとなったインスタンスの性質を引き継ぐことができる。 クラスに縛られないため、実行中の任意の場所でプロパティやメソッドをオブジェクト毎に変更したり、新しく追加したり、削除したりすることができる。これはStringやwindow等のビルトインオブジェクトも例外ではなく、同じStringのオブジェクトでもオブジェクトごとに別の振る舞いを持たせる事もできる <code javascript> var a = new String("JavaScript"); var b = new String("JavaScript"); b.toString = function() { return this.valueOf() + "にゃー"; }; console.log(a.toString()); // "JavaScript" console.log(b.toString()); // "JavaScriptにゃー" </code> ===== 言語仕様 ===== * [[javascript:function|関数]] * [[javascript:closure|クロージャ]] * [[javascript:object|オブジェクト]] * [[javascript:class|クラス]] * [[javascript:inherit|継承とオーバーライド]] * [[javascript:generator|ジェネレータ]] ===== TIPS ===== * [[javascript:stringReplace|String#replaceに関数を渡す]] ===== ECMAScriptの処理系 ===== * Rhino - Javaで書かれたJavaScriptエンジン、JDKに付属 * Nashorn - JDK8でRhinoに代わって搭載予定 * JScript - IEのJavaScriptエンジン、ASPの記述言語、WSHの記述言語として利用される。 * V8 - ChromeのJavaScript処理系、node.jsでも採用。CrankshaftというJITコンパイラを搭載している。 * JavaScriptCore - iOS、OSXに搭載されているJavaScript処理系。Safariで使用。 * SpiderMonkey - Firefox、IonMonkeyと呼ばれる高速なJITコンパイラを搭載している
ecmascript.txt
· 最終更新: 2015/10/24 04:31 by
nullpon
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ