java學(xué)習(xí)

          java學(xué)習(xí)

           

          javascript作用域

          <html>
           <script type="text/javascript">
           /*作用域
           在js中,函數(shù)嵌套是非常普遍的,在函數(shù)嵌套中,
           對(duì)變量是如何尋找的?
           答:首先在函數(shù)內(nèi)部尋找,如果需找不到,則在外層尋找。
           直到……全局(window)區(qū)域.從里往外尋找
           */
            var c=5;
            function t1(){
             var d=6;
             function t2(){
              var e =7;
              alert(c+d+e);
             }
             t2();
            }
           //t1();//18
           function t3(){
             var d=6;
             function t2(){
              var e =7;
               d =3;
              alert(c+d+e);
             }
             t2();
            }
           //t3();//15
           /*聲明變量,var的作用
           var 是在函數(shù)運(yùn)行的上下文中,聲明一個(gè)變量,
           如果不加var,則是一個(gè)賦值操作,
           但是不要狹隘的理解為聲明了一個(gè)全局變量
           */
           //alert(window.d);
           //alert(window.e);
           function t(){
            d=5;//d沒有加var,僅僅是一個(gè)賦值操作,尋找
            //t域內(nèi)的函數(shù),如果沒找到,繼續(xù)向外尋找……到window
            //如果window中還沒有d,創(chuàng)建d變量并賦值
            var e=6;
           }
           //t();
           //alert(window.d);
           //alert(window.e);
           function  t4 (){
            var d;
            function t2(){
             d=5;
             e=6;
            }
            t2();
           }
           //t4();
           //alert(window.d);//undefined
           //alert(d);// d is not defined
           //alert(e);
           /*
           注意:以window.xxx引用全局變量,尋找不到,
           作為window的屬性不存在,返回undefined。
           直接以xxx引用,尋找不到,則報(bào)xxx is not defined
           */
           
           var s1='g';
           function  t5(){
            alert(s1);//g
            alert(s2);//is not defined
            s2 = 'lo';
           }
          // t5();
           /*
           在t5中尋找s2,沒有找到s2的變量聲明,到window上尋找s2的變量聲明,
           還是沒有找到,報(bào)is not defined
           */
           
           function  t6(){
            alert(s1);//g
            alert(s2);//undefined
           var s2 = 'lo';
           }
           t6();
           /*
            解釋:
            js代碼自上而下執(zhí)行,但是js代碼的整體運(yùn)行分為:
            詞法分析期和運(yùn)行期
            自上而下執(zhí)行之前,先有一個(gè)詞法分析過程。
            詞法分析t6函數(shù):
            聲明了s2變量,但是沒有對(duì)s2賦值,只有在運(yùn)行期才賦值
            因此s2=undefined。
            執(zhí)行t6函數(shù):
            alert(s1);//g
            alert(s2);//undefined
            s2 = 'lo';
           */
           </script>
          </html>

          posted on 2014-12-06 16:45 楊軍威 閱讀(173) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 大兴区| 天津市| 定南县| 长垣县| 讷河市| 西吉县| 闵行区| 栖霞市| 大埔区| 桦南县| 张家港市| 兰考县| 平江县| 丽江市| 壤塘县| 威远县| 信宜市| 陇川县| 姚安县| 翁源县| 双峰县| 青川县| 太仓市| 和政县| 蓬溪县| 溧水县| 泽普县| 崇左市| 永和县| 平武县| 东乡| 宜丰县| 华池县| 滨海县| 长宁县| 贵定县| 五家渠市| 新巴尔虎右旗| 丽江市| 甘洛县| 广汉市|