淺談js script標簽中的預解析
首先介紹預解析,雖然預解析字面意思很好理解,但是卻是出坑出的最多的地方,也是bug經(jīng)常會有的地方,利用好預解析的特性可以解決很多問題,并且提高代碼的質(zhì)量及數(shù)量,瀏覽器在解析代碼前會把變量的聲明和函數(shù)(整個函數(shù)體)提前到當前作用域的最頂端。
細節(jié)問題:在多對的script標簽中如果有相同的函數(shù),那它們相互之間是不會受影響的,在第二對script標簽中聲明變量或者是創(chuàng)建函數(shù),在第一對script標簽中是無法訪問到的,這就說明了,javaScript的預解析只會在各自的script標簽中發(fā)生,同時,第一對script標簽中報錯是不會影響到下面script標簽中js代碼的執(zhí)行。但在第一對標簽中聲明的變量和函數(shù)是可以在第二對標簽中獲取到的。當然對于函數(shù)來說,預解析也只會將聲明的變量及子級函數(shù)提升到當前函數(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)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關文章
js?Cannot?set?properties?of?null(setting?‘onclick‘)問題分
今天增加功能的時候,提示Uncaught?TypeError:?Cannot?set?properties?of?null?(setting?onclick)問題分享下,需要的朋友可以參考下2023-06-06javascript結合Canvas 實現(xiàn)簡易的圓形時鐘
本文給大家分享的是javascript結合Canvas 實現(xiàn)簡易的圓形時鐘,主要是對自己前段時間學習html5的canvas的一次小檢驗,這里推薦給小伙伴們,有需要的可以參考下。2015-03-03面試官常問之說說js中var、let、const的區(qū)別
var、let和const都是JavaScript中用來聲明變量的關鍵字,并且let和 const關鍵字是在 ES6 中才新增的,下面這篇文章主要給大家介紹了關于var、let、const區(qū)別的相關資料,需要的朋友可以參考下2022-03-03