JavaScript赤宝書ノート:(第四章)変数、作用領域、メモリ
2671 ワード
この章は三つの部分に分けられています.変数、スコープ、メモリは全部重点問題です.現在面接で主に聞いたのは前の二つです.
1、変数
まず変数を見ます.変数のデータタイプは、基本タイプと参照タイプに分けられています.復習してください.基本タイプ(5種類):Unidefined、Null、Boolen、Number、String 引用タイプ(5種類):Object、Aray、Date、RegExp、Funct 彼らの違いは以下の通りです.基本タイプの値は、単純なデータセグメントであり、サイズが固定され、スタックに保存される.参照の種類の値はオブジェクトで、ヒープに保存されます. 基本タイプは値伝達であり、参照タイプは参照伝達である.(したがって、コピーの場合は、基本型の値をコピーし、2つの変数は独立しています.参照型の値をコピーし、2つの変数は実際に同じオブジェクトを参照します.) 最後に補足するのはタイプ検出です.タイプ検出には二つの方法があると知っています.typeofとinstance ofは、どのような場合に使いますか?基本データタイプを検出するためのtypeof注意点は以下の通りです. 検出結果は小文字で、例えばstring はNullタイプを検出し、結果はObjectであり、null ではない.は、参照タイプFunctionを検出し、結果はfunction である.は他の参照タイプを検出し、結果はobject である.
参照タイプを検出し、instance ofを使用する. 配列の検出に関しては、一つのページに複数のグローバル作用領域がある場合にinstance ofに問題が発生するため、ES 5は、Aray.isAray()方法を追加した. この他に、一つのオブジェクトが元のものかそれともカスタムオブジェクトかを検出するためには、次のような方法があります.
以下は基礎の中の基礎であり、面接でよく見られる問題でもあります.1.実行環境とは?2.作用域とは?3.作用域チェーンとは?
まず、実行環境とは作用域のことで、便宜上、以下を総称して作用域と呼びましょう.スコープという概念は私たちはよく知らないです.他のプログラミング言語の中に全部あります.役割は以下の通りです
スコープ制御変数とパラメータの可視性とライフサイクル――JavaScript言語精粋
JavaScriptはグローバルスコープと関数スコープだけで、ブロックレベルのスコープはありません.しかし、各作用領域には変数のオブジェクトがあり、大域的な作用領域にはwindowオブジェクトがあり、関数の作用領域にはこの関数のargmentsオブジェクトが対応しています.
第二に、作用ドメインチェーンとは、コードが作用領域で実行されるときに作成された変数と関数を検索するために使用され、すべての作用領域に対する変数と関数の規則的なアクセスを保証することができます.検索プロセスは、レベルを上げて検索するプロセスで、グローバルスコープにまで遡ります.
3、メモリ管理、ゴミ収集
ごみの収集
ごみ収集には2つの方法があります.マーククリアと参照カウントです.マーククリア:現在使われていない値にマークを付け、最後にそれらを廃棄してメモリ空間を解放します.参照カウント:各値が参照される回数を追跡し、それらの参照回数が0の値が占めるメモリを解放する.
メモリ管理
JavaScriptは自動ごみ収集機構を持っていますが、メモリを最適化することができます.局部変数は実行環境から離れると自動的に大域変数の参照を解除します.彼らの値をnullに設定して参照解除を行う必要があります.目的は実行環境から値を逸脱させ、ゴミ収集器がそれを回収するためです.
ここで本章は終わります.まだ内容が少ないです.便利な記憶が主です
1、変数
まず変数を見ます.変数のデータタイプは、基本タイプと参照タイプに分けられています.復習してください.
// Array , Object toString()
// , :
function isArray(value){
return Object.prototype.toString.call(value)=="[object Array]";
}
// , Function
function isFunction(value){
return Object.prototype.toString.call(value)=="[object Function]";
}
....
2、スコープ以下は基礎の中の基礎であり、面接でよく見られる問題でもあります.1.実行環境とは?2.作用域とは?3.作用域チェーンとは?
まず、実行環境とは作用域のことで、便宜上、以下を総称して作用域と呼びましょう.スコープという概念は私たちはよく知らないです.他のプログラミング言語の中に全部あります.役割は以下の通りです
スコープ制御変数とパラメータの可視性とライフサイクル――JavaScript言語精粋
JavaScriptはグローバルスコープと関数スコープだけで、ブロックレベルのスコープはありません.しかし、各作用領域には変数のオブジェクトがあり、大域的な作用領域にはwindowオブジェクトがあり、関数の作用領域にはこの関数のargmentsオブジェクトが対応しています.
第二に、作用ドメインチェーンとは、コードが作用領域で実行されるときに作成された変数と関数を検索するために使用され、すべての作用領域に対する変数と関数の規則的なアクセスを保証することができます.検索プロセスは、レベルを上げて検索するプロセスで、グローバルスコープにまで遡ります.
3、メモリ管理、ゴミ収集
ごみの収集
ごみ収集には2つの方法があります.マーククリアと参照カウントです.マーククリア:現在使われていない値にマークを付け、最後にそれらを廃棄してメモリ空間を解放します.参照カウント:各値が参照される回数を追跡し、それらの参照回数が0の値が占めるメモリを解放する.
メモリ管理
JavaScriptは自動ごみ収集機構を持っていますが、メモリを最適化することができます.局部変数は実行環境から離れると自動的に大域変数の参照を解除します.彼らの値をnullに設定して参照解除を行う必要があります.目的は実行環境から値を逸脱させ、ゴミ収集器がそれを回収するためです.
ここで本章は終わります.まだ内容が少ないです.便利な記憶が主です