# [JavaScript] 變數及函式的先後順序 ###### tags: `JavaScript` ## 變數宣告的順序 輸入程式碼 ``` console.log(a); var a; console.log(a); a = 10; console.log(a); ``` 輸出分別是: * 顯示錯誤 :console 因為我們前面並未宣告此變數,所以顯示錯誤 * undefinded:我們宣告了變數 a 但並未賦予值 * 10:變數 a 賦予了值 10 #### 結論: 在撰寫變數的順序時,一定會先宣告且賦予值,才會去做計算或者輸出 ## function宣告順序 輸入程式碼 ``` greet(); function greet(){ alert('hello'); } ``` 我們先呼叫greet();函式,才去宣告函式 greet() 按照上述變數的邏輯,在 function 會出現錯誤,其實不會的 因為當 JavaScript 在執行時,會先把宣告的函式都先自動移到最前面,所以不會有問題。