| パラダイム | マルチパラダイム |
|---|---|
| 開発者 | マイクロソフト株式会社 |
| タイピングの規律 | アヒル、弱い、ダイナミック |
| プラットフォーム | .NET フレームワーク |
| 影響を受けた | |
| JScript、ECMAScript | |
| ファイル名拡張子 |
.js |
|---|
JScript .NET は、Microsoftによって開発された.NET プログラミング言語です。
JScriptと JScript .NETの主な違いは、次のようにまとめられます。
まず、JScript はスクリプト言語であるため、プログラム(または、より具体的には、スクリプト) は、最初にコードをコンパイルしなくても実行できます。これは、JScript .NET コマンドライン コンパイラには当てはまりません。この次世代バージョンは、実行に .NET共通言語ランタイム(CLR) に依存しているため、コードを実行する前に、コードを共通中間言語(CIL) (以前は Microsoft 中間言語 (MSIL) と呼ばれていました) コードにコンパイルする必要があります。ただし、JScript .NET は、実行時にコードを解釈するための完全なサポート (コンストラクFunctionターまたはeval関数経由など) を提供し、実際、JScript .NET エンジンをホストするカスタム アプリケーションによって、VSA [ jargon ]インターフェイス経由でインタープリターを公開できます。
第二に、JScript は Microsoft のActiveX / COMテクノロジに強固な基盤を持ち、その機能の多く ( ADO経由のデータベース アクセス、ファイル処理など) の提供に主に ActiveX コンポーネントに依存していますが、JScript .NET は.NET Framework を使用して同等の機能を提供しています。下位互換性のため (または .NET の同等のライブラリが存在しない場合)、JScript .NET は ActiveXObject コンストラクターと .NET Typeクラスの標準メソッドの両方を使用して、 .NET / COM Interop経由で ActiveX オブジェクトへの完全なアクセスを引き続き提供しています。
.NET Framework やC#、Visual Basic .NETなどの .NET 言語は広く採用されていますが、JScript .NET はメディアや開発者からあまり注目されていません。Microsoft のプレミア開発ツールであるVisual Studio .NETではサポートされていません。ただし、ASP.NETではJScript .NET がサポートされています。
言語の違い
以下は、JScript .NET と他の .NET 言語の言語上の違いとその比較を示す代表的な例です。
C#との違い
- JScript .NET では、JScript .NET アプリケーションの実行時にオペレーティング システムが直接呼び出す必要のあるmain() 関数は必要ないため、JScript .NET プログラム フローはグローバル コードに基づくことができます。
- JScript .NET は、型チェック システムが非常に緩やかであるため、明示的な型宣言の規則がまったく必要なく、非常に簡単に学習できます。
- JScript .NET では、以前のバージョンの JScript にある特定の関数 (直角三角形の角度の正接を求める関数など) が JScript .NET に存在するため、.NET Framework 基本クラス ライブラリへの明示的な参照は必要ありません。
- JScript .NET はC 構文と密接にリンクされているため、 C#、Java、またはC++開発者にとって非常に簡単に習得できます。
- JScript .NET は Windows フォーム アプリケーションの作成に使用できますが、デリゲートは JScript .NET でのみ使用でき、作成できないため、JScript .NET では問題が発生します。そのため、カスタム イベントを JScript .NET でエミュレートするのは困難です。
C++との違い
- JScript .NET ではmain() 関数は必要ありません。
- JScript .NET では、変数の明示的な型宣言は必要ありません。( C++では、テンプレートとジェネリックの使用がこれに相当し、テンプレートの特殊化などで大まかにエミュレートされます。)
- JScript .NET では、プログラム内の変数の使用時に明示的な型キャストも必要ありません。文字列を取得するために使用されるが整数のみに使用されるコードは暗黙的にキャストできます。その逆はコンパイル時にエラーなしで実行できますが、精度またはデータが失われる可能性があります。
例えば:
システムをインポートします。
Console.WriteLine ( "こんにちは、お名前は何ですか?" ); Console.WriteLine ( "お名前を入力してください:" );
var _name = Console.ReadLine ( ) ;
コンソール.WriteLine ( "Hello, " + _name ) ;
Javaとの違い
- JScript .NET の構文と語彙規則は、どちらもCから派生しているという点でJavaに似ています。JScript はもともと Microsoft によるECMAScriptの実装であり、Java とは無関係ですが、 JavaScriptとしてよく知られています。そのため、Java やその他の C 派生言語のユーザーにとっては、JScript の方が習得しやすいでしょう。
- JScript .NET では、開発者は型指定のない変数を使用することができ、コンパイルされたコードを最適化するために、使用方法から型を推測できる場合もあります。一方、Java ではすべての変数に型指定が必要です。
- JScript .NET は実行時にオブジェクトにプロパティとメソッドを追加できますが、Java オブジェクトは常に宣言されたインターフェイスに準拠します。
- JScript .NET はグローバル変数をサポートしますが、Java はサポートしていません。
旧バージョンの JScript との違い
- JScript .NET では、開発者は型情報 (例: var x : String; )を持つ変数と関数を宣言できますが、JScript の変数と関数の型情報は宣言できません (例: var x; )。
- JScript .NET スクリプトは解釈されず、独立して実行されます。実行されると、JScript .NET アプリケーションはCLR を呼び出します。CLR はインタープリタを使用せずにCIL命令を実行します。
- JScript .NET は、コンパイラがスタンドアロンの実行可能ファイルとアセンブリを生成できるため、ブラウザや他のスクリプト エンジンがなくても実行できます。ただし、これらを実行するには、.NET Frameworkがインストールされている必要があります。
- JScript .NET は、.NET Framework BCL (基本クラス ライブラリ) へのアクセスを提供し、より多くの機能を提供します。
- JScript .NET は、Web ページの生成に使用されるテクノロジであるASP.NETのスクリプト言語としてのみ使用できます。したがって、JScript .NET はPHPやその他のサーバー側スクリプト言語と同様の役割を果たします。ただし、Internet Explorer は依然として古い JScript エンジンのみを使用しているため、JScript.NET を使用して Web ページ (またはHTAや HTC)をスクリプトすることはできません。この点では、JScript は JScript .NET よりもはるかに多用途です。
参照
- JavaScript OSA – Apple Macintosh 用のシステムレベルのスクリプト言語
- JScript
- アクションスクリプト
注記
参考文献
- JScript .NET 入門
- JScript .NET の紹介
- JScript.NET チュートリアルとフォーム チュートリアル
