iT邦幫忙

0

JavaScript 基礎知識-function & 變數的先後順序

這次來探討順序的先後問題,比較 function 跟變數,有何差異性

假設以下情況:

 console.log(a);
 var a;
 console.log(a);
 a = 10;
 console.log(a);

這時候在 console 會輸出什麼呢 ?

答案是:
顯示錯誤
undefinded
10

這裡說明一下
第一行 console 因為我們前面並未宣告此變數,所以顯示錯誤
第二行,我們宣告了變數 a 但並未賦予值
所以第三行會顯示 undefinded
第四行,變數 a 賦予了值 10
所以第五行,才會輸出 10

所以當我們在撰寫變數的順序時,一定會先宣告且賦予值,才會去做計算或者輸出
這樣的情況,當拿來 function 的時候,又會如何?

程式碼如下:

greet();

function greet(){
    alert('hello');
}

我們先呼叫greet();函式,才去宣告函式 greet()
按照上述變數的邏輯,在 function 是否會出現錯誤?

其實是不會的,這是因為當 JavaScript 在執行時,會先把宣告的函式都先自動移到最前面
所以讀取時順序會是:

function greet(){
    alert('hello');
}

greet();

但通常大部分的人在撰寫 JavaScript 時,都會自動把宣告的函式寫在最前面
所以在 JavaScript 的世界裡,順序是很重要的,都有可能是造成錯誤的其中原因之一。


尚未有邦友留言

立即登入留言