javascript函式和變數宣告提前簡單介紹
這裡廢話不多說了,直接進入主題,先看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼alert(webName);//undefined var webNames="螞蟻部落"; alert(webName);//螞蟻部落
以上程式碼中,第一個彈出值是undefined,第二個彈出值是螞蟻部落,下面分析一下原因:
這是由於javascript執行引擎預編譯造成的,也就是javascript會在語句執行前會先對變數的宣告進行預編譯,但是這個階段並沒有進行初始化,也就是沒有賦值,賦值是在執行階段進行的,於是,第一個alert語句執行的時候,變數已經被宣告,但是並沒有被初始化。所以以上程式碼等同於以下程式碼:
[JavaScript] 純文字檢視 複製程式碼var webNames alert(webName); webNames="螞蟻部落"; alert(webName);
這也就是所謂的“提前宣告”,也就說var語句具有較高的優先順序,在程式碼執行前會進行預編譯操作。同樣的道理,使用function宣告一個函式也具有“提前宣告”效果,看一段程式碼例項:
[HTML] 純文字檢視 複製程式碼<script type="text/javascript"> alert(typeof func); func(); function func() { alert("螞蟻部落歡迎您"); }; </script>
以上程式碼,第一alert會彈出function,函式執行會彈出“螞蟻部落歡迎您”。
需要注意的是,函式宣告不等同於函式語句,再看一段程式碼例項:
[HTML] 純文字檢視 複製程式碼alert(typeof func); func(); var func=function() { alert("螞蟻部落歡迎您"); }; </script>
以上程式碼中,alert會彈出undefined,但是函式卻無法執行,因為下面var func=function(){}僅僅是一個普通的var語句而已,雖然被前置宣告,但是沒有被賦值。
相關文章
- javascript變數宣告簡單介紹JavaScript變數
- javascript變數宣告提升簡單介紹JavaScript變數
- 函式表示式和函式宣告簡單介紹函式
- javascript函式宣告兩種主要方式簡單介紹JavaScript函式
- javascript函式讀取變數作用域簡單介紹JavaScript函式變數
- javascript 變數簡單介紹JavaScript變數
- javascript基礎(函式與方法的區別,變數作用域,變數和函式的宣告提前,函式作用域)(十五)JavaScript函式變數
- javascript匿名函式簡單介紹JavaScript函式
- javascript變數汙染簡單介紹JavaScript變數
- javascript call()函式用法簡單介紹JavaScript函式
- javascript trim()函式用法簡單介紹JavaScript函式
- javascript高階函式簡單介紹JavaScript函式
- javascript函式呼叫方式簡單介紹JavaScript函式
- javascript變數作用於簡單介紹JavaScript變數
- JavaScript 變數與函式宣告前置JavaScript變數函式
- JS變數宣告和函式宣告提升JS變數函式
- javascript定時器函式簡單介紹JavaScript定時器函式
- javascript呼叫函式的方式簡單介紹JavaScript函式
- javascript匿名函式的使用簡單介紹JavaScript函式
- javascript匿名函式的優點簡單介紹JavaScript函式
- 深入解析JS變數宣告和函式宣告提升JS變數函式
- 淺談JS變數宣告和函式宣告提升JS變數函式
- javascript將浮點數數變為整數簡單介紹JavaScript
- javascript事件處理函式繫結簡單介紹JavaScript事件函式
- javascript陣列的map()函式用法簡單介紹JavaScript陣列函式
- javascript建構函式的繼承簡單介紹JavaScript函式繼承
- javascript非建構函式繼承簡單介紹JavaScript函式繼承
- javascript函數語言程式設計簡單介紹JavaScript函數程式設計
- 簡單介紹JS函式防抖和函式節流JS函式
- javascript鏈式呼叫簡單介紹JavaScript
- javascript動態改變元素css樣式簡單介紹JavaScriptCSS
- 簡單介紹nginx 變數使用Nginx變數
- Javascript 函式和變數提升JavaScript函式變數
- js函式引數值傳遞和引用傳遞簡單介紹JS函式
- javascript &&和||運算子簡單介紹JavaScript
- getFullYear()函式用法簡單介紹函式
- document.close()函式簡單介紹函式
- js isPrototypeOf()函式用法簡單介紹JS函式