JavaScriptにおける声明の向上

3369 ワード

JavaScriptにおける変数または関数の宣言は、現在の関数本体の上部に昇格されます.この宣言が到達不可能な場所にあるかどうかに関わらず.
1 var test = 1;

2 function f() {

3 if(!test){

4 var test=10;

5 }

6 alert(test);

7 }

8 f();
上のコードは以下の通りです.
1 var test = 1;

2 function f(){

3 var test;

4 if(!test){

5 test = 10;

6 }

7 alert(test);

8 }

9 f();
上記の出力は10です.
 
もう一つの例:
1 var test=1;

2 function f(){

3 test = 10;

4 return;

5 function test(){}

6 }

7 f();

8 alert(test);
相当于:
1 var test=1;

2 function f(){

3 function test(){}

4 test = 10;

5 }

6 f();

7 alert(test);
上記の出力は1です