js中變數宣告的問題

2021-07-09 13:52:59 字數 492 閱讀 3525

1.   var a;

function a(){}

alert(typeof a)

輸出:function

2. 

function a(){}

var a;

alert(typeof a)

輸出:function

3.  function a(){}

var a=1;

alert(typeof a)

輸出:number

4. var a=1;

function a(){}

alert(typeof a)

輸出:number

從1,,2中我們可以看出js引擎是先對var宣告的變數進行註冊,再對函式型別的變數進行註冊。

而3和4是一樣的原理,js引擎執行到這段**時,首先註冊var a,但是此時的a的值是undefined,然後註冊function a,然後開始執行語句a=1,所以輸出的是number。

js中變數的提前宣告?????

變數的宣告提前 使用var關鍵字宣告,會在所有的 執行前被宣告 但不會賦值 但是如果宣告變數不是用var 變數不會提前宣告 var a a 2 console.log a b var b,c,d fun 總結 使用函式宣告提前建立 function 函式名 會在所有 執行前就會被建立 functio...

JS中的變數宣告提公升

js是一種指令碼語言,和一些高階語言不同,它沒有完整編譯的過程,一般是邊寫邊編譯,這也是我們覺得指令碼語言比其他語言載入快的原因,其實,js中有變數宣告提公升這一機制。當js在執行的時候會分為2個階段,預解析,執行,當js在執行的時候會將所有用var宣告的變數以及關鍵字定義的函式進行提公升 func...

js變數宣告

var a 向系統要個空間 var 是個關鍵字,變數宣告只有var var a 10 這裡發生兩個過程,乙個是向系統要個空間,另乙個是把10放進房間。並且先發生第一步。var a 10 a 20 20的值把10的值覆蓋 var a,b,c,e 可以同時宣告多個變數,中間以,號 程式設計都是英文狀態 ...