『javascript基礎補足--役割ドメインと役割ドメインチェーンに関する知識点』
1442 ワード
キーワード:グローバル変数、ローカル変数、変数昇格メカニズム、メモリ回収メカニズム、役割ドメイン、役割ドメインチェーン
へんすう
ローカル変数はグローバル変数と名前を変更できますが、ローカル変数はグローバル変数をブロックします.グローバル変数を使用するには、
グローバル変数
ローカル変数
アクティブドメイン
プログラム全体
現在の関数やループなど
ライフサイクル
ブラウザがページをアンインストールしてから終了します
関数の実行中に存在する
クローズドパッケージコンセプト:1つの関数の内部に定義された関数で、内部変数を読み込みます. 用途: は、前述した関数内部を読み取ることができる変数であり、 これらの変数の値を常にメモリに保持します.(合理的利用、ブラウザのコスト削減)
変数リフトメカニズムvarを使用して変数を定義すると、定義名は役割ドメインの上部 にアップグレードされます.
メモリ回収メカニズム
ゴミ収集器は定期的に(周期的に)使用し続けていない変数を見つけ、メモリを解放します.
思考問題bはvarを使用していないので、グローバル変数を定義します.注意厳格モードbはnot defined を報告します.役割ドメイン、内部は定義していないで、変数は上へ を探します役割ドメイン、近接原則
参考資料チェン一峰--Javascript閉パッケージを学ぶ javascriptのゴミ回収メカニズムとメモリ管理 ローカル変数とグローバル変数の違い このシリーズの文章は私が収納し、まとめ、先端の基礎知識を振り返ります.自分と必要な人を供養し、共に進歩する.先人の分かち合いに感謝します.もし間違いがあったら、もっと言ってください.
へんすう
ローカル変数はグローバル変数と名前を変更できますが、ローカル変数はグローバル変数をブロックします.グローバル変数を使用するには、
グローバル変数
ローカル変数
アクティブドメイン
プログラム全体
現在の関数やループなど
ライフサイクル
ブラウザがページをアンインストールしてから終了します
関数の実行中に存在する
クローズドパッケージ
変数リフトメカニズム
console.log(varTest);//undefined
var varTest = 123;
console.log(letTest);//letTest is not defined
let letTest = 456;
メモリ回収メカニズム
ゴミ収集器は定期的に(周期的に)使用し続けていない変数を見つけ、メモリを解放します.
思考問題
function fn() {
var a = b = 123;
console.log(a);
console.log(b);
}
fn();
console.log('outside: ' + a);//=>a is not defined
console.log('outside: ' + b);//=>outside: 123
var num = 123;
function fn() {
console.log(num)//=>123
}
function fn() {
console.log(num)//=>undefined
var num = 456;
}
参考資料