web-dev-qa-db-ja.com

JavaScriptが「動的」であるとはどういう意味ですか?

私はさまざまなソース(wiki、記事など)から、プログラミングの意味での動的な意味を読みました。 Wikipedia は、動的プログラミング言語が(静的言語のコンパイル時間とは対照的に)実行時に特定のプログラミング動作を実行する方法について話しますが、その説明は曖昧であり、これらの動作の難易度、複雑さの程度がどのように異なるかについて説明しています。すべてのプログラミング言語のパフォーマンスコスト。

JavaScriptについて具体的に言えば、それが動的であることはどういう意味ですか?

私はこれについて完全に間違っているかもしれませんが、静的に型付けされた言語とは対照的に、変数/関数(例:var、関数jsFunction())をインスタンス化する前に型を指定していないため、JavaScriptは動的に型付けされた言語であると理解していますJavaここで、変数/関数をインスタンス化する前に型を定義します(例:int var、public int function())。

これはこれと関係がありますか?

20
OpMt

ほとんどの言語には、動的な動作のいくつかの側面があります。静的に型付けされた言語でさえ、さまざまなデータ型を含むことができる動的またはバリアントのデータ型を持つことができます。

JavaScriptは動的言語と呼ばれます。それは、動的な側面がいくつかあるだけでなく、ほとんどすべてが動的であるためです。

すべての変数は動的であり(型と存在の両方)、コードも動的です。実行時に新しい変数を作成でき、変数のタイプは実行時に決定されます。いつでも新しい関数を作成したり、既存の関数を置き換えることができます。ブラウザで使用すると、より多くのスクリプトファイルが読み込まれるとコードが追加され、いつでも好きなときに多くのファイルを読み込むことができます。

現在、JavaScriptは多くの実装でコンパイルされており、静的コードと静的タイプはバックグラウンドで生成されます。ただし、動作は依然として動的であり、コンパイラーは、特定のオブジェクトに動的な側面が使用されていないことを検出した場合にのみ静的型を生成します。

16
Guffa

JSが動的である最も明確で明確な方法は、動的に型付けされることです。言語にはデータ型がありますが、プログラムが実際に実行されるまで、プログラムの型が「大丈夫」であることを確認しません。反対は静的型付けです。つまり、プログラムの型は、実行前にソースコードを検査するプログラムによって検証されます。 (例:JavaおよびMLは静的に型指定されます。)

2
liban