Javascript-エスケープ
ハウスティンとは何ですか。
昇進の事前意義は昇進である.関数で変数を宣言すると、どの場所でも関数の開始位置に昇格します.ただし、宣言された部分だけが上に引っ張られ、値が代入された部分は位置を保持します.ホイスティンは宣言と分配の分離と考えられる.
へんすうかそく
function foo() {
console.log(a); // undefined
var a = 100;
console.log(a); // 100
}
foo();
上記のコードを実行すると、aは宣言されず、aが呼び出されたためにエラーが発生します.ただし、JavaScriptでは、関数の最初のビットでaを宣言するため、undefined(エラーなし)が出力されます.上のコードは実は次のコードです.function foo() {
var a;
console.log(a); // undefined
var a = 100;
console.log(a); // 100
}
foo();
関数の加速
foo();
function foo() {
console.log('출력');
}
上記のコードでは、変数のエスケープと同様に関数宣言も向上するため、動作は正常です.ただし、次の関数式ではエラーが発生します.foo(); // foo is not a function
var foo = function() {
console.log('출력');
};
上のコードはトランスコードされて次のような形に変更されました.var foo;
foo(); // foo is not a function
foo = function() {
console.log('출력');
};
上述したようにfoo宣言が上向きにエスケープされるため、foo実行時は変数宣言状態にある.したがってfooは関数ではないとエラーを発生します.Reference
この問題について(Javascript-エスケープ), 我々は、より多くの情報をここで見つけました https://velog.io/@jeb1225/Javascript-호이스팅テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol