ホームページ > 記事 > ウェブフロントエンド > 面接でよくある質問: JavaScript 変数のプロモーション
JavaScript 変数ホイスティングとは何ですか?面接でもよく聞かれます。以下の記事では、JavaScriptの変数改善について紹介しますが、ある程度の参考値があるので、困っている友人の参考になれば幸いです。
#JavaScript 変数のホイスティング
ホイスティングJavaScript はステートメントを移動します デフォルトの動作トップに。 [関連コースの推奨事項: JavaScript ビデオ チュートリアル ]
JavaScript 宣言の強化: JavaScript では、変数を使用後に宣言できます。言い換えれば、変数は宣言される前でも使用できます。例 1 は例 2 と同じ結果になります: 例 1:<!DOCTYPE html> <html> <meta charset="utf-8"> <title>js</title> <body> <p id="demo"></p> <script> x = 5; // 给x赋值5 elem = document.getElementById("demo"); // 查找一个元素 elem.innerHTML = x; // 在元素内显示x var x; // 声明 x </script> </body> </html>例 2:
!DOCTYPE html> <html> <meta charset="utf-8"> <title>js</title> <body> <p id="demo"></p> <script> var x; // 声明 x x = 5; // 把5赋值给x elem = document.getElementById("demo"); elem.innerHTML = x; </script> </body> </html>これを理解するには、「宣言プロモーション」を理解する必要があります:ホイスティング) 」。すべての宣言を現在のスコープの先頭 (現在のスクリプトまたは現在の関数の先頭) に移動する JavaScript のデフォルトの動作を指します。 ただし、このデフォルトの動作は ES6 で変更されました。ES6 では let で宣言された変数と const で宣言された定数は昇格されません!
JavaScript の初期化は昇格されません##JavaScript は宣言のみをホイストし、初期化は行いません。例 1 と例 2 は異なる結果になります。
例 1:
<!DOCTYPE html> <html> <meta charset="utf-8"> <title>js</title> <body> <p id="demo"></p> <script> var x = 5; // 初始化 x var y = 7; // 初始化 y elem = document.getElementById("demo"); // 查找一个元素 elem.innerHTML = x + " " + y; // 显示x和y </script> </body> </html>
例 2:
<!DOCTYPE html> <html> <meta charset="utf-8"> <title>js</title> <body> <p id="demo"></p> <script> var x = 5; // 初始化 x elem = document.getElementById("demo"); // 查找一个元素 elem.innerHTML = x + " " + y; // 显示x和y var y = 7; // 初始化 y </script> </body> </html>
先頭で変数を宣言します。 多くの開発者にとって、変数ホイスティングは JavaScript の動作として知られていない、または見落とされています。開発者がプロモーションを理解していない場合、プログラムにエラー (Error) が含まれる可能性があります。エラーを避けるために、常に各スコープの先頭ですべての変数を宣言してください。これは JavaScript がコードを解釈する方法であるため、常に従うべき良いルールです。
この記事は
js チュートリアル以上が面接でよくある質問: JavaScript 変数のプロモーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。