変数の昇格と関数の昇格
3092 ワード
1、変数の昇格
ES 6の前に、JavaScriptはブロックレベルのスコープがありません.グローバルスコープと関数スコープだけがあります.変数が昇格します.変数宣言はそのスコープの最初の部分に引き上げられます.
2、関数アップ
jsには関数を作成する方法が二つあります.関数宣言式と関数の字面量式です.関数宣言のみ関数アップグレードが存在します.例えば:
転載先:https://www.cnblogs.com/xumqfaith/p/7809833.html
ES 6の前に、JavaScriptはブロックレベルのスコープがありません.グローバルスコープと関数スコープだけがあります.変数が昇格します.変数宣言はそのスコープの最初の部分に引き上げられます.
console.log(a);//undefined
var a=1;
console.log(a) //1
function fn () {
console.log(a); // undefined
var a = 'a';
console.log(a); // a
}
fn();
以上の印刷結果になるのは、jsの変数がアップグレードされたためで、実際に上のコードは以下の通りに実行されます. var a; // , , ,
console.log(a); // undefined
a = '1'; //
console.log(a); // 1
function fn () {
var a; // ,
console.log(a);// undefined
a = 'a';
console.log(a);// a
}
fn();
2、関数アップ
jsには関数を作成する方法が二つあります.関数宣言式と関数の字面量式です.関数宣言のみ関数アップグレードが存在します.例えば:
console.log(f1); // function f1() {}
console.log(f2); // undefined
function f1() {}
var f2 = function() {}
以上の印刷結果があるのは、jsの関数が向上したため、コードは実際に以下の通りに実行されます.function f1() {} // ,
console.log(f1);
console.log(f2);// f2
var f2 = function() {}
転載先:https://www.cnblogs.com/xumqfaith/p/7809833.html