ECMAScript変数:
1。基本タイプ値(単純なデータセグメント)
2。参照型値(値で構成される可能性のあるオブジェクト)→メモリに保存されているオブジェクト
------
動的属性:将来の使用のための参照値に新しい属性を動的にのみ追加することができます。
------
変数値をコピーします:
基本タイプの値をコピー→変数オブジェクトに新しい値を作成→新しい変数にコピーします(相互の影響なし)
参照タイプの値をコピー→変数オブジェクトに保存されている値を新しい変数割り当てスペースにコピーします(コピーはポインターであり、同じオブジェクトを指し、互いに影響を与えます)
------
パスパラメーター:
ECMAScriptのすべての関数は価値で渡されます。
(関数の外側の値は、関数内のパラメーターにコピーされます。
→ECMA機能のパラメーターは、局所変数として想像できます。 ))
理由の説明:
ステートメント1:
関数パラメーターはローカル変数であり、外部値の関数パラメーターに渡され、内部および外部値は互いに影響しません。参照と重複アドレスに対処されるため、互いに影響を与えます。
ステートメント2:オブジェクト角度(パラメーターはオブジェクトOBJです)
------
オブジェクトには値→パラメーターオブジェクトと外部オブジェクトが同じオブジェクトを参照します→外部オブジェクトが指すオブジェクトには、ヒープメモリに1つのオブジェクトのみがあり、グローバル変数です。
ローカルオブジェクトが変更されたオブジェクトのグローバルスコープ(外部)に反映されている結果、関数内のローカル変数が機能の実行後すぐに破壊されるため、それを間違えないでください。
------
実行環境(「環境」と呼ばれることもあります)と範囲
実行環境は、他のデータにアクセスできる白またはそれぞれの動作を決定する白または機能を定義します→各実行環境には、環境で定義されているすべての変数と関数がこのオブジェクトに保存されます。
------
各関数には独自の実行環境があります→実行フローが関数に入ると→関数環境が環境スタックに押し込まれます
コードが環境で実行されると、変数オブジェクトのスコープチェーンが作成されます。
範囲チェーンの目的:実行環境にアクセスする許可を持つすべての変数と関数に秩序あるアクセスを確保します。
スコープチェーンのフロントエンドは、現在実行されているコードが配置されている環境の常に可変オブジェクトです。
------
内部環境はスコープチェーンを介してすべての外部環境をチェーンすることができますが、外部環境は内部環境にアクセスできません(環境接続は線形です。
関数パラメーターは変数としても扱われます
------
スコープチェーンを拡張します。
一部のステートメントは、フロントエンドの範囲チェーンに一時的に変数を追加できます(コード実行後に変数は削除されます)
1。トライキャッチステートメントのキャッチブロック
2.ステートメント付き
------
Javasにはブロックレベルの範囲がありません
ここでは、ブロックレベルの範囲と機能スコープを単純に区別できます
JS変数と範囲の上記の詳細な説明は、私があなたと共有したすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。