淺談js script標(biāo)簽中的預(yù)解析
首先介紹預(yù)解析,雖然預(yù)解析字面意思很好理解,但是卻是出坑出的最多的地方,也是bug經(jīng)常會有的地方,利用好預(yù)解析的特性可以解決很多問題,并且提高代碼的質(zhì)量及數(shù)量,瀏覽器在解析代碼前會把變量的聲明和函數(shù)(整個(gè)函數(shù)體)提前到當(dāng)前作用域的最頂端。
細(xì)節(jié)問題:在多對的script標(biāo)簽中如果有相同的函數(shù),那它們相互之間是不會受影響的,在第二對script標(biāo)簽中聲明變量或者是創(chuàng)建函數(shù),在第一對script標(biāo)簽中是無法訪問到的,這就說明了,javaScript的預(yù)解析只會在各自的script標(biāo)簽中發(fā)生,同時(shí),第一對script標(biāo)簽中報(bào)錯(cuò)是不會影響到下面script標(biāo)簽中js代碼的執(zhí)行。但在第一對標(biāo)簽中聲明的變量和函數(shù)是可以在第二對標(biāo)簽中獲取到的。當(dāng)然對于函數(shù)來說,預(yù)解析也只會將聲明的變量及子級函數(shù)提升到當(dāng)前函數(shù)的內(nèi)部的最上面。
<script> var numOne = 5; function num() { return 1; } console.log(num()); //1 console.log(numOne); //5 </script> <script> function num() { return 2; } console.log(num()); //2 console.log(numOne); //5 var numOne = 10; </script>
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
js?Cannot?set?properties?of?null(setting?‘onclick‘)問題分
今天增加功能的時(shí)候,提示Uncaught?TypeError:?Cannot?set?properties?of?null?(setting?onclick)問題分享下,需要的朋友可以參考下2023-06-06javascript結(jié)合Canvas 實(shí)現(xiàn)簡易的圓形時(shí)鐘
本文給大家分享的是javascript結(jié)合Canvas 實(shí)現(xiàn)簡易的圓形時(shí)鐘,主要是對自己前段時(shí)間學(xué)習(xí)html5的canvas的一次小檢驗(yàn),這里推薦給小伙伴們,有需要的可以參考下。2015-03-03js將日期格式轉(zhuǎn)換為YYYY-MM-DD HH:MM:SS
這篇文章主要介紹了js將日期格式轉(zhuǎn)換為YYYY-MM-DD HH:MM:SS,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09面試官常問之說說js中var、let、const的區(qū)別
var、let和const都是JavaScript中用來聲明變量的關(guān)鍵字,并且let和 const關(guān)鍵字是在 ES6 中才新增的,下面這篇文章主要給大家介紹了關(guān)于var、let、const區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-03-03