ホームページ  >  記事  >  ウェブフロントエンド  >  js 変数のプロモーションとは何を意味しますか? js変数プロモーションの使い方の紹介(例)

js 変数のプロモーションとは何を意味しますか? js変数プロモーションの使い方の紹介(例)

不言
不言オリジナル
2018-09-15 16:27:105338ブラウズ

この記事の内容は、js 変数のプロモーションの意味についてです。 js 変数プロモーションの使用方法の概要 (例) は、必要な友人が参考にできることを願っています。

#はじめに

変数ホイスティング ホイスティングは、JavaScript 実行コンテキストの動作方法についての人々の理解であり、公式の変更ではありません

文字通り変数のプロモーションとは、変数と関数の宣言が物理層のスコープの先頭に移動されることを意味します。しかし、この理解は正確ではありません。効果は同じですが、実際の実装では、JavaScript の変数と関数の宣言はコンパイル段階でメモリに置かれます。

これは、ユーザーが正式に宣言していることを意味します。関数または変数

関数プロモーション

JavaScript では、関数を宣言する前に使用できます。

test();

function test() {
    // do something
}
通常の使用法では、関数を呼び出す前に関数を宣言する必要がありますが、JavaScript が関数宣言を事前にメモリに自動的に保存するため、このメソッドは実行できます。 JavaScript は自動的に関数宣言を最前面に昇格させるようです

変数の昇格

変数の場合、JavaScript は同様の方法を使用しますが、注意すべき点が 1 つあります。変数のプロモーションを行う場合、JavaScript は変数の宣言のみをプロモートしますが、変数が初期化される前に使用すると、未定義の

// undefined
console.log(a);
// ReferenceError: b is not defined
console.log(b);
var a = 10;
// undefined
console.log(num);
num = 6;
// 6
console.log(num);
num += 7;
// 13
console.log(num);
var num;
// undefined
console.log(num);
num = 1;
// 1
console.log(num);
var num = 2;
// 2
console.log(num);
が返されます。ここで、##JavaScript# は ## です。 ## の変数プロモーションは

var 用ですが、letconst には変数プロモーションの機能がありません

// ReferenceError: a is not defined
console.log(a);
let a = 10;
より複雑な例

var a = 100;
function fn() {
    // undefined
    console.log(a);
    var a = 200;
    // 200
    console.log(a);
}
fn();
// 100
console.log(a);
var a;
// 100
console.log(a);
// 300
var a = 300;
console.log(a);

関連する推奨事項:

js 変数プロモーションの詳細な説明

# # JS

のスコープと変数ホイスティングについての深い理解

以上がjs 変数のプロモーションとは何を意味しますか? js変数プロモーションの使い方の紹介(例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。