JavaScript5-2預(yù)解析函數(shù)聲明整體保留_第1頁
JavaScript5-2預(yù)解析函數(shù)聲明整體保留_第2頁
JavaScript5-2預(yù)解析函數(shù)聲明整體保留_第3頁
JavaScript5-2預(yù)解析函數(shù)聲明整體保留_第4頁
JavaScript5-2預(yù)解析函數(shù)聲明整體保留_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、JavaScript5-2預(yù)解析函數(shù)聲明整體保留JavaScript 預(yù)解析函數(shù)聲明整體保留預(yù)解析函數(shù)聲明整體保留JavaScriptl JavaScript的作用域l 域:空間、范圍、區(qū)域、l 例如:寫js必須放在script里,css放在style里l 作用:讀和寫(在一個(gè)范圍內(nèi))l 瀏覽器有專門讀js的解析器,當(dāng)讀到script標(biāo)簽時(shí)開始解析:第1步(預(yù)解析)-找到var和function,但變量設(shè)置未定義,函數(shù)會(huì)整體取到作為字符串,重復(fù)保留有內(nèi)容的(函數(shù),兩個(gè)函數(shù)保留后面的);第2步-逐行讀代碼,讀到一個(gè)變量但是仍是第1步得到的數(shù)據(jù)時(shí),會(huì)變成未定義,讀到表達(dá)式(= + - * / %

2、+ - !參數(shù),就是能變化值的),因此彈出undefind 逐行執(zhí)行遇到函數(shù)跳過 調(diào)用的時(shí)候才會(huì)發(fā)生JavaScriptl JavaScript的作用域l 例如:alert(a); var a =1;和alert(a); a =1;的區(qū)別l 一個(gè)面試題(分析一下都彈出什么):l alert(a);l var a=1;l alert(a);l function a三alert(2);l alert(a);l var a = 3;l alert(a);l function a三alert(4);l alert(a);lJavaScriptl JavaScript的作用域l 在script里定義的變

3、量是全局變量和函數(shù)l 而兩個(gè)script是2個(gè)塊,每個(gè)塊的預(yù)解析獨(dú)立進(jìn)行l(wèi) 如果上面彈出下面塊的內(nèi)容會(huì)報(bào)錯(cuò)l 如果下面彈出上面塊的內(nèi)容會(huì)正常執(zhí)行l(wèi) 一個(gè)函數(shù)的內(nèi)部也是一個(gè)域l 一個(gè)著名的題:l var a=1;l function fn1三alert(a);var a=2;l fn1三;l alert(a);lJavaScriptl JavaScript的作用域l 一個(gè)著名的題(續(xù)):l var a=1;l function fn1三alert(a);a=2;l fn1三;l alert(a);l 作用域鏈:沒有找到變量時(shí)由里到外,自上到下l var a=1;l function fn1(a)

4、alert(a);a=2;l fn1三;l alert(a);l 參數(shù)就是局部變量a-var aJavaScriptl JavaScript的作用域l 一個(gè)著名的題(再續(xù)):l var a=1;l function fn1三alert(a);a=2;l fn1(a);l alert(a);l 函數(shù)內(nèi)的var定義一個(gè)局部變量,沒有辦法從外面找到函數(shù)里面的東西l 如:function fn1三var a = abc;l fn1三; /找不到JavaScriptl JavaScript的作用域l 如果想要獲取函數(shù)里的內(nèi)容的辦法1(全局變量):l var str = ;l function fn1三v

5、ar a = abc; str = a;l fn1三; alert(str);l 如果想要獲取函數(shù)里的內(nèi)容的辦法2(局部函數(shù)調(diào)用):l function fn1三var a = abc; fn2(a);l function fn2(str)alert(str); JavaScriptl JavaScript的作用域l if三和for三的花括號不是域l 因此在alert一個(gè)if里的函數(shù)應(yīng)該一起解讀出來,但是在FF里會(huì)出現(xiàn)錯(cuò)誤,不能解析if或其他里面,應(yīng)該把函數(shù)寫在外面l 類似的window.onload = fucntion三,里也是一個(gè)域,里面的變量也是局部變量l 當(dāng)出現(xiàn)錯(cuò)誤的時(shí)候,如果不是代碼寫錯(cuò)了,那就是代碼的解析機(jī)制想錯(cuò)了JavaScriptl JavaScript的作用域l 名字空間(命名空間)函數(shù)聲明 函數(shù)表達(dá)式l 全局變量會(huì)綁定到window上,不同的JavaScript文件如果使用了相同的全局變量,或定義了相同名字的頂層函數(shù),會(huì)造成命名沖突,并且很難發(fā)現(xiàn)。減少?zèng)_突的一個(gè)方法是把所有變量和函數(shù)全部綁定到一個(gè)全局變量中。例如:l var MYAPP = ;/ 唯一的全局變量MYAPPl MYAPP.name = myapp;/ 其他變量l MYAPP.version = 1.0;/ 其他變量l MYAPP.foo = function 三 return foo;/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論