ホームページ  >  に質問  >  本文

同じ名前の変数と関数に関する問題

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

phpcn_u3114phpcn_u31142700日前938

全員に返信(2)返信します

  • PHP中文网

    PHP中文网2017-06-21 09:38:13

    <script>
    var bar=function(){
       var foo=function(){}
       foo=10;
    }
    var foo=1;
    bar();
    alert(foo);
    </script>

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

    返事
    0
  • phpcn_u3114

    ご回答ありがとうございます、分かりました

    phpcn_u3114 · 2017-06-21 22:38:15
    phpcn_u3114

    ご回答ありがとうございます、分かりました

    phpcn_u3114 · 2017-06-21 22:38:16
  • ringa_lee

    ringa_lee2017-06-21 09:37:34

    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

    私の混乱を解決してくれてありがとう。

    phpcn_u3114 · 2017-06-21 22:39:29
  • キャンセル返事