同じ名前の変数と関数に関する問題
phpcn_u3114
phpcn_u3114 2017-06-20 17:42:16
0
2
953

詳細については、私が撮ったスクリーンショットを参照してくださいQQ截图20170620174114.jpg

phpcn_u3114
phpcn_u3114

全員に返信(2)
Ty80
<script>
var bar=function(){
   var foo=function(){}
   foo=10;
}
var foo=1;
bar();
alert(foo);
</script>

jsの宣言部分が一番上にあり、関数内のfooはローカル変数でグローバルのfooには影響しません。

いいねを押す +0
  • 返事 ご回答ありがとうございます、分かりました
    phpcn_u3114 著者 2017-06-21 22:38:15
  • 返事 ご回答ありがとうございます、分かりました
    phpcn_u3114 著者 2017-06-21 22:38:16
ringa_lee

1 関数宣言が先頭になります

2 変数宣言も先頭になります
3 変数宣言よりも関数宣言が先頭になります:)
4 JSエンジンで解析する際は変数と代入文が一緒に書かれます。 、宣言と代入の 2 つの部分に分割され、宣言が一番上にあり、代入は元の位置に保持されます
5 宣言された変数は繰り返し宣言されません

上記の点を参照すると、理由がわかります!

コードの実際の効果は次のとおりです:

function bar(){
 function foo(){}
  var foo;//实际上无效
  foo=10;
}
var foo;
bar();
foo=1;
console.log(foo);


いいねを押す +0
  • 返事 私の混乱を解決してくれてありがとう。
    phpcn_u3114 著者 2017-06-21 22:39:29
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート