2
  1. JavaScriptでメモリはどのように機能しますか?スタックはありますか?ヒープ?メモリ管理はどのように機能しますか?

  2. 変数とそのメモリ内の場所との間のバインドはいつ発生しますか?実行前または実行中?

  3. JavaScriptにモジュールなどはありますか?

  4. また、JSはポータブルだと思いますか?そして信頼できる?あなたの答えに簡単な説明をしてください。

インターネットで答えを探していたのですが、見つからないようです。クイックアンサーもありがたいです。

4

2 に答える 2

3

メモリはjavascriptで管理されているので、ばかげた量のメモリを使用しないようにする以外に、メモリについて心配する必要はありません。オブジェクトへの参照が残っていないか、オブジェクトがスコープ外になっている場合、そのオブジェクトはガベージコレクターによって解放されます。それが内部でどのように機能するかは、実際には実装に依存し、言語によって定義されていません。

関数フレーム(ローカル変数など)でさえ、このように機能します(従来のスタック指向の方法ではありません)。これにより、埋め込み関数が参照しなくなるまで解放されない関数フレームであるjavascriptの「クロージャ」が可能になります。

Javascriptコード自体は完全にマシンに依存しないため、非常に移植性があります。実際には、アプリケーションの移植性は通常、言語よりもjavascriptが対話するライブラリ(ブラウザDOMなど)に依存します。これは一連のECMA仕様によって文書化されており、言語が進化するにつれてさまざまな新機能を定義するその仕様のさまざまなバージョン番号があります。

私はjavascriptは非常に信頼できると考えており、さまざまな実装で利用できない最近導入された機能を使用しようとしない限り、真のjavascriptの問題はめったにありません。クロスブラウザの互換性の問題はたくさんありますが、それらはほとんどすべて言語自体ではなく、ブラウザのDOMまたは言語とDOMの間の相互作用にあります。

「モジュラス」とはどういう意味かわかりません。

Javascriptはインタプリタ言語であるため、変数とそのメモリ内の場所との間に固定バインディングはありません。すべての変数は名前で参照され、名前と値を格納する特定のメモリとの間の接続を最適に解決する方法を決定するのは実装次第です。

于 2011-07-09T22:13:37.620 に答える
1

A.ヒープのみがあります。Javascriptは自動ガベージコレクションを使用します。C / C ++の経験があると思いますか?JSでは、成功の秘訣はほとんど「メモリ管理のことをすべて忘れれば大丈夫」です。

B.バインディングは実行時に発生します。Javascriptはコンパイルされた言語ではないため、コンパイル時はなく、ランタイムのみであることに注意してください。

C.すべてのcスタイルの言語と同様に、Javascriptは%をモジュラス演算子として使用します。これは、グーグルですばやく検索すると明らかになります。

D.システム上で直接実行されるのではなく、ブラウザ上で実行されるため、非常に移植性があります。FirefoxまたはChromeを実行するほとんどすべてのシステムがJavascriptを実行します。つまり、MS Windows、Linux、Mac、BSD、その他の最新のシステムです。

D'。Javascriptにはいくつかの実装があります。「Javascriptは信頼できますか?」「車は信頼できますか?」と尋ねるようなものです。多かれ少なかれ信頼できる多くの異なる車があります。Javascriptについても同じです。

于 2011-07-09T22:16:09.183 に答える