如果你無法理解javaScript語言的運作機制,或者簡單地說,你不能掌握javascript的執行順序,那你就猶如伯樂駕馭不了千里馬,讓千里馬脫韁而出,四處亂竄。
那麼JavaScript是怎麼來進行解析的嗎?它的執行順序又是如何的呢?在了解這些之前,我們先來認識幾個重要的術語:
1、程式碼區塊
JavaScript中的程式碼區塊是指由<script>標籤分割的程式碼段。例如:<BR><div class="codetitle"><span><a style="CURSOR: pointer" data="50623" class="copybut" id="copybut50623" onclick="doCopy('code50623')"><U>複製程式碼 程式碼如下:<div class="codebody" id="code50623"><BR><script type="text/javascript"> <BR> alert("這是程式碼區塊一");<BR></script>
JS是按照程式碼區塊來進行編譯和執行的,程式碼區塊間相互獨立,但變數和方法共享。什麼意思呢? 舉個例子,你就明白了:
2、宣告式函數與賦值式函數
3、預編譯期與執行期間
事實上,JS的解析過程分為兩個階段:預編譯期(預處理)與執行期。
預編譯期JS會對本程式碼區塊中的所有宣告的變數和函數進行處理(類似與C語言的編譯),但需要注意的是此時處理函數的只是宣告式函數,而且變數也只是進行了聲明但未進行初始化以及賦值。
//js在預處理期對變數進行了聲明處理,但是並沒有進行初始化與賦值,所以導致程式碼區塊二中的變數是unfiened的,而程式碼一中的變數是完全不存在的,所以瀏覽器報錯。
理解了上面的幾個術語,相信大家對JS的運作機制已經有了個大概的印象了,現在我們來看個例子:
複製程式碼
複製程式碼
程式碼如下: