042|JavaScriptゴミ回収

928 ワード

前の学習を通して、JavaScritpでオブジェクトを作成できることを知っています.オブジェクトを作成するごとにメモリを消費する必要があります.メモリはどうやって解放されますか?
JavaScriptはごみ回収機構を採用しており、対象の放出はJavaScriptエンジンによって制御されている.JavaScriptがオブジェクトまたはデータコードが参照できなくなったことを検出した場合、このオブジェクトまたはデータ占有メモリは解放されます.たとえば、下記のコード:
function sayHi()
{
    var text = "Hello world!"
    console.log(text)
}

sayHi()
//    ,text       
上記のコードでは、sayHi()関数に「ハローワールド!」Strngワードの値が作成されます.sayHiが実行された後、text変数はもう参照できなくなりました.そのため、JavaScriptエンジンはtextをごみとして表示し、未来のある時点でメモリを回収します.
なお、sayHi()が実行された後、textが直ちに釈放されるとは限らない.sayHi()の実行が完了したら、textはごみとして表示され、占有されたメモリは今後ある時点で回収されることを意味します.
このように対象が引用できない時にゴミの回収を待つアルゴリズムをMark-and-sweepといいます.
過去には、いくつかの古いブラウザがありますが、ごみを判定するために参照カウントメカニズムを採用しています.このような古いゴミの判断法は循環引用問題があります.
引用アルゴリズムはもう古いです.このコースでは詳しく紹介しません.
幸いなことに、現在のすべてのJavaScript環境では、上記の問題を心配する必要はありません.JavaScriptの先進的なゴミ回収は上記の問題を解決してくれました.
OK、終了
JavaScriptとは何ですか?インデックスの容器は何ですか?キー容器とは?