ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript 変数の深い理解scope_javascript スキル

JavaScript 変数の深い理解scope_javascript スキル

WBOY
WBOYオリジナル
2016-05-16 18:43:221032ブラウズ

JavaScript の変数スコープを学習する前に、いくつかの点を明確にする必要があります:
a. JavaScript の変数スコープは、独自のスコープ チェーンに基づいています。
b. JavaScript にはブロックレベルのスコープがありません。
c. 関数内で宣言された変数は関数全体で定義されます。

1. JavaScript スコープ チェーン
まず、次のコードを見てください。

コードをコピーします コードは次のとおりです。




コードを確認します。 JavaScript はまず、変数 Rain が内部関数で定義されているかどうかを確認します。定義されている場合は、内部関数の Rain 変数が使用されます。Rain 変数が内部関数で定義されていない場合、JavaScript は Rain 変数が定義されているかどうかを引き続き確認します。このコードでは、rain 変数が Rainman 関数本体で定義されていないため、JavaScript エンジンは引き続き (グローバル オブジェクトを) 検索して、グローバル オブジェクトに Rain が定義されているかどうかを確認します。 Rain = 1 と定義されているため、最終結果は「1」と表示されます。
スコープ チェーン: JavaScript が変数をクエリする必要がある場合 2 つのオブジェクトが定義されていない場合、検索は続行されます。
上記のコードには、inner、rainman、window の 3 つのスコープ チェーン オブジェクトが順に含まれています。

2. 関数本体内では、ローカル変数は同じ名前のグローバル変数よりも優先されます。



コードをコピー コードは次のとおりです:


4.機能全体。
まず、このコードを観察してください。



コードをコピー
コードは次のとおりです:


これは、JavaScript 初心者にとってよくある間違いであり、意図せずに多くのグローバル変数を残してしまいます。
6. グローバル変数はすべてウィンドウ オブジェクトの属性です





次のコードと同等


コードをコピーします コードは次のとおりです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:ステータスバーの時間表示効果デジタル時計_時間と日付次の記事:ステータスバーの時間表示効果デジタル時計_時間と日付

関連記事

続きを見る