ホームページ  >  記事  >  ウェブフロントエンド  >  面接でよくある質問: JavaScript 変数のプロモーション

面接でよくある質問: JavaScript 変数のプロモーション

青灯夜游
青灯夜游転載
2019-11-28 17:14:022289ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。