1. 程式人生 > >JS之函式(二)

JS之函式(二)

函式講解二

   1、JS三部曲

         語義分析、預編譯、解釋執行

   2、預編譯詳解

         重點:函式宣告整體提升

                     變數 宣告提升

         例子:


                 test12();

               function test11(){

                  console.log("你好");

                }


              function test12(){

                  console.log("你好2");

                }

        雖說在JS中是屬於順序執行語句,但對於函式的宣告和呼叫,如果呼叫放置在函式之前或者之後,JS在預編譯時,根據函式宣告整體提升會將定義的函式放置在JS片段的最前面,即:

            <script type="text/javascript">

                  function test11(){

                        console.log("你好");

                   }


                 function test12(){

                        console.log("你好2");

                   }

                 test12();

          </script>

      如果是變數,例如:

               <script type='text/javascript'>

                     console.log(a);

                     var a = 123;//這語句屬於變數宣告賦值

             </script>

      結果將顯示:undefined

 

     實質的執行過程為【變數 宣告提升】:

                      <script type='text/javascript'>

                           var a;

                           console.log(a);

                           a = 123;

                     </scipt>

          但是如果為此種情況

                        <script type='text/javascript'>

                             console.log(a);

                       </script>

         則屬於程式錯誤