DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> javascript裡面的閉包,作用域,預解析
javascript裡面的閉包,作用域,預解析
編輯:JavaScript基礎知識     

函數的作用域 1.全局變量=公用衛生間 2.局部變量=次臥衛生間      局部變量 全局無法使用      局部聲明變量不加var的話就變成全局變量(不推薦使用)
3.閉包=次臥的可以用自己的衛生間,也可以用公用衛生間; 預解析 1、先把變量聲明 全部提前,賦值不動   2、函數也有預解析,直接提前   3、預解析 不會脫離函數作用域,也不會沖出script標簽 最多提到自己標簽的頂部 代碼執行順序 見一個srcipt解析執行一個,執行完了 在執行下一個
案例1:      alert(a);      var a=12; 解答:預解析直接把var a提前,但是賦值不動           彈出一個沒有賦值的變量,是undefined
案例2: function show(){         alert(a);         var a = 12;    //預解析不回沖出 函數作用域     }     show();     alert(a);//報錯 解答:第一個show();調用了函數裡面彈出undefined;           第二個alert(a);局部變量,全局無法使用,所以報錯not defined

案例3:

show(); function show(){      alert(1); } 解答:函數也有預解析,直接提前,所以調用的時候可以彈出1 這也正印證了那句話:函數在哪裡定義不重要,重要的是在哪裡調用
案例4:      var a = 7;     if(a%2 == 1){         function show(){             alert('奇數');            }     }else{         function show(){             alert('偶數');            }        }     show(); 解答:判斷只是用來迷惑人的,判斷走了第一條語句,但是函數是不會執行的           但是調用的函數show();只看下面的(從上到下的順序,下面覆蓋了上面的重名函數)所以alert('偶數');
案例5:      show();     var show = function(){         alert(1);        } 解答:var show 提前值不動,給一個變量加();答案是not a function       
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved