<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                js代碼由瀏覽器的js解釋器來執行,解析共分為2個步驟:預解析和代碼執行。 <mark>預解析規則:</mark> 1. 把變量的聲明提升到調用這個變量的最前面,只會提升聲明,不會提升賦值。 2. 把函數的聲明提升到調用這個函數最前面,只會提升聲明,不會提升調用。 3. 先提升var(變量),再提升function(函數)。需要注意變量名與函數名同名的情況,最好避免。 預解析過程總是把聲明提到調用的最前面。 ```js // 不聲明直接調用——報錯 console.log(num); // 先調用,再聲明——undefined console.log(x); // undefined var x = 100; /*相當于: var x; // 1. 先聲明變量x console.log(x); // 2. 調用變量x,但未賦值 x = 100; // 3. 對變量x賦值 */ var a = 25; function abc (){ alert(a);//undefined,調用其實是函數內部的a var a = 10; } abc(); /* 上面代碼預解析的過程為: var a; // 聲明變量a,函數外面的a a = 25; // 對a賦值,函數外面的a function abc(); // 聲明函數abc abc(); // 調用函數 var a; // 聲明變量a,函數內部的a alert(a); // 函數內部的a a = 10; */ console.log(a); // 25 function b() { console.log('aaaaa'); } b(); // aaaaa var b = 1; console.log(b); // 1 ``` <br/> ```js // 1、----------------------------------- var num = 10; fun(); function fun() { console.log(num); // undefined,調用的其實是函數內部的num var num = 20; } //2、----------------------------------- var a = 18; f1(); function f1() { var b = 9; console.log(a); // undefined console.log(b); // 9 var a = '123'; } // 3、----------------------------------- f1(); console.log(c); // 9 console.log(b); // 9 console.log(a); // 報錯 function f1() { var a = b = c = 9; // 相當于var a=9; b=9; c=9; // c和b是全局變量 //var a=9, b=9, c=9; 相當于var a=9; var b=9; var c=9; console.log(a); // 9 console.log(b); // 9 console.log(c); // 9 } ``` <mark>js代碼執行過程</mark> 全局預解析 -> 執行全局代碼 -> 遇到函數 -> 對函數內部預解析 -> 執行函數內部代碼 -> 執行全局代碼。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看