JavaScriptの変数と関数の巻き上げ
1491 ワード
関数と変数における巻き上げの概念を理解しよう
これは初心者に優しいコンテンツです.我々が必要とする唯一の前提条件は、変数と関数の基本的な理解である.
我々が始める前に、JavaScriptがどのように働くかについて理解しましょう.任意のプログラムを実行する前にJavaScript全体のプログラムを通過し、プログラムのグローバル実行コンテキストを作成します.実行コンテキストはJavaScriptが実行される場所です.このグローバル実行コンテキストでは、2つのフェーズがあります.
第1段階はメモリフェーズでも変数環境とも呼ばれる.JavaScriptはメモリフェーズにメモリを割り当てます.すべての変数に対して、プレースホルダ'未定義'を割り当て、全ての関数に関数本体自体を割り当てます.
第2段階はコード実行フェーズである.ここでは、各コマンドラインが順に実行される.
心の中でこれらのものを保つことは、ホイイトに飛び込みましょう
Hoistingは、変数を初期化する前にさえ、エラーなしで変数や関数にアクセスできる現象です.
以下のプログラムを歩きましょう.
console.log(a);
console.log(welcome);
welcome();
var a = 21;
function welcome() {
console.log('Hoisting in JavaScript...');
}
このプログラムでは、変数' a 'にアクセスし、'ウェルカム'という関数を呼び出します.私たちは初期化する前にこれらのことをしています.他のプログラミング言語では、多くのエラーが発生します.しかし、これはJavaScriptの場合ではありません.
JavaScriptでは、コンソールで次の行が表示されます.
あなたがこれらの上記の線を見る理由は、ここにあります.
私がイントロで説明したように、JavaScriptはプログラムを実行する前に、それはプログラム全体を通過し、各変数にメモリを割り当て、メモリフェーズで機能します.
グローバルスコープでのプログラムへ
概要
JavaScriptは、初期化される前でも、関数と変数をアクセスしましょう.関数宣言のみが呼び出されますが、関数式は定義されません.グローバルスコープで関数を作成し、コード全体で使用できるようにするときに、関数宣言を使用します.関数が使用できる場所を制限する関数式を使用します.
Reference
この問題について(JavaScriptの変数と関数の巻き上げ), 我々は、より多くの情報をここで見つけました https://dev.to/arjunjunna/variable-and-function-hoisting-in-javascript-59ngテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol