摘要:之前經常會聽到預解釋,預解釋,那么預解釋到底是什么今天就來淺談一下下。所以預解釋是只發生在當前作用域下的,只有函數執行的時候函數中的才會預解釋。而是在預解釋的時候,既要聲明又要定義,所以是有值的。
之前經常會聽到預解釋,預解釋,那么預解釋到底是什么?今天就來淺談一下下。
預解釋也是我們平時說的變量提聲,在當前作用域中js代碼執行之前,瀏覽器首先會默認的把所有的帶var和function的進行提前的聲明或者定義,這個就可以叫做預解釋。
那什么叫做聲明,什么又叫做定義喃?
聲明:比如
var test
那這個就是在告訴瀏覽器我們在全局作用域中聲明了一個叫test的變量
定義:比如
test=2
給我們聲明的變量進行賦值
那對于帶var 和function關鍵字的,在預解釋中,他們也是不一樣的。帶var 的在預解釋中只是提前的聲明,而function在預解釋中既要聲明,還要定義,這也就是為什么上面我們說 “ 提前聲明或定義 ”
舉個例子
var test = 2 var obj = {"name":"代碼"} function foo (val) { var test2 = val console.log(test2) }
以上代碼在全局作用域中從上往下執行的時候預解釋,首先聲明一個 test,聲明一個obj,再聲明和定義一個foo。那么在foo里面的 var test2在全局作用域下會預解釋嗎?當然是不行的, 上面我們也說過了“ 在當前作用域中js執行 ”test2在foo的作用域中,只有當foo執行的時候才會預解釋。所以預解釋是只發生在當前作用域下的,只有函數執行的時候函數中的才會預解釋。
所以我們可能出去面試的時候就會遇到一些這樣的問題
console.log(test ) foo(5) var test = 2 console.log(test ) var obj = {"name":"代碼"} function foo (val) { var test2 = val console.log(test2) }
那么打印出來的內容是什么喃?
console.log(test )//undefined foo(5)//5 var test = 2 console.log(test )//2 var obj = {"name":"代碼"} function foo (val) { var test2 = val console.log(test2) }
因為剛開始的時候只是對test做了聲明,但是沒有對它進行定義,所以第一次console是undefind,但是后來到了第二次console的時候,已經把2賦值給了test,所以第二個console是有值的。而foo是function,在預解釋的時候,既要聲明又要定義,所以foo(5)是有值的。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/108458.html
摘要:一概念是一個單線程解釋型的編程語言。預編譯大致可分為步創建對象找形參和變量聲明,將形參和變量名作為屬性名,值為將實參值和形參統一在函數體里面找函數聲明,值賦予函數體。 一、JavaScript概念 JavaScript ( JS ) 是一個單線程、解釋型的編程語言。 二、JavaScript語言特點 2.1 單線程 JavaScript語言的一大特點就是單線程,也就是說,同一個時間只能...
摘要:圖片的預加載是提升用戶體驗而損失性能的一種做法,而懶加載的性能就比較好了,所以將兩個結合起來放到程序中是一種不錯的選擇。 最近在做H5滑頁時,遇到一些比較大的場景,動輒二十、三十頁,而圖片更是可恨的能達到上百個,所以就會導致場景在加載的時候遇到網速比較慢的時候,用戶等待的時間特別長,這樣的話,就有可能導致一部分的用戶沒有耐心,而丟失這部分用戶,于是就有了這里的圖片的預加載和懶加載,記個...
摘要:預編譯發生在函數執行前也就是說函數執行時,預編譯已經結束。五總結理解預編譯需要明白變量函數聲明和變量賦值。預編譯階段,只進行變量函數聲明,不會進行變量的初始化即變量賦值,所有變量的值都是變量賦值是在解釋執行階段才進行的。 一、JS的概念 JavaScript ( JS ) 是一種具有函數優先的輕量級解釋型或即時編譯型的編程語言。 二、JS語言特點 2.1 單線程 (1)JavaScri...
摘要:我綁定的事件無效。狀況總結動態元素綁定用,靜態元素綁定兩者都可以,為了代碼的統一還是都用吧,切記,可以篩選元素哦 狀況之外 在之前的公司并沒有遇到這個問題,也就沒有深究。直到自己換了現在的公司,剛來第二天就開始寫別人寫到一半的項目,很無奈,不是原生就是jquery,由于項目急,已經來不及切換框架重新布局,只能繼續了。 狀況之中 到處都是列表,到處都是js創建的動態頁面,好吧,那我也繼續...
閱讀 2780·2021-09-23 11:44
閱讀 1671·2021-09-13 10:24
閱讀 2619·2021-09-08 09:36
閱讀 1231·2019-08-30 15:54
閱讀 2248·2019-08-30 13:54
閱讀 3308·2019-08-30 10:57
閱讀 1844·2019-08-29 18:43
閱讀 3609·2019-08-29 15:10