JS-預解析
JS預解析是什麼?
在當前的作用域下,js運行之前.會有帶有 var 和 function關鍵字的代碼事先聲明,
並在內存中安排好,然後從上到下的執行js代碼.
JS預解析 js逐行執行
js對什麼進行預解析
1> var 後面的變數
2> 函數
3> 函數傳參的變數
1.通過var關鍵字定義的變數進行預解析的時候,都是聲明declare,不管他有沒有賦值,都會賦值為undefined。
凡是傳參,直接賦值
alert(a);
var a = 1;
alert(b);
var b = function(){
}
alert(c);
var c;
2.function進行預解析的時候,聲明而且定義了define,但它存儲數據的那個空間存儲的是代碼是字元串,沒意義
Advertisements
alert(a);//函數的字元串
function a(){
alert("預解析的function1")
}
3.預解析中想實現立即執行的函數 放到()一對括弧當中去
(function fn(){
alert("預解析的function1")
}(2));閉包
(function(){
alert("預解析的function2")
}());
js在什麼情況下會進行預解析
1.遇到<script><\script>標籤對時
2.遇到函數時:因為變數是有作用域的。
什麼情況下會改變預解析賦予的初始值?
有賦值功能的符號 = += *= /= ++ --