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變數函式
- JS變數宣告和函式宣告提升JS變數函式
- 深入解析JS變數宣告和函式宣告提升JS變數函式
- 淺談JS變數宣告和函式宣告提升JS變數函式
- 簡單介紹JS函式防抖和函式節流JS函式
- 簡單介紹nginx 變數使用Nginx變數
- Javascript 函式和變數提升JavaScript函式變數
- JavaScript 簡單介紹JavaScript
- JavaScript函式宣告和函式表示式區別JavaScript函式
- 關於變數的宣告和定義、內部函式和外部函式變數函式
- 用預編譯去理解函式宣告提升和變數宣告提升編譯函式變數
- 簡單介紹克隆 JavaScriptJavaScript
- 變數和函式宣告提升,let和var const區別變數函式
- JavaScript 宣告變數JavaScript變數
- javascript函式中with的介紹JavaScript函式
- 簡單介紹Python 如何擷取字元函式Python字元函式
- 簡單介紹python的input,print,eval函式Python函式
- 簡單介紹JavaScript閉包JavaScript
- 函子的簡單介紹
- javascript中generator函式的介紹JavaScript函式
- javascript高階函式的介紹JavaScript函式
- 簡單介紹Linux環境變數檔案Linux變數
- 簡單介紹SQLserver中的declare變數用法SQLServer變數
- match函式簡單介紹以及與index函式結合應用函式Index
- 瞭解 JavaScript 函數語言程式設計 - 宣告式函式JavaScript函數程式設計函式
- 簡單介紹Python中的配對函式zip()Python函式
- 簡單介紹SQL中ISNULL函式使用方法SQLNull函式
- JavaScript return語句簡單介紹JavaScript
- JavaScript希爾排序簡單介紹JavaScript排序
- 機器學習之簡單介紹啟用函式機器學習函式
- linux c 環境變數函式 getenv putenv 簡介Linux變數函式
- 深入淺出JS - 變數提升(函式宣告提升)JS變數函式
- 簡單介紹Lua中的變數與賦值方法變數賦值
- JavaScript塊級作用域宣告函式JavaScript函式
- 學習javaScript必知必會(1)~js介紹、函式、匿名函式、自呼叫函式、不定長引數JavaScriptJS函式
- JavaScript中的預解析(變數提升)介紹JavaScript變數
- JavaScript中的預解析(變數提升)介紹!JavaScript變數
- javascript 的函式宣告與表示式對比JavaScript函式
- C/C++語言新增“函式過載”功能簡單介紹和使用方法C++函式