# 筆記_javascript基礎攻略 ----- ###### tags: `javascript` `jQuery` [前端常見問題攻略系列](https://ithelp.ithome.com.tw/articles/10241916) [var functionName = function() {} vs function functionName() {}](https://stackoverflow.com/questions/336859/var-functionname-function-vs-function-functionname) [前端三十|10. [JS] 一般函式與箭頭函式的差異?](https://medium.com/schaoss-blog/%E5%89%8D%E7%AB%AF%E4%B8%89%E5%8D%81-10-js-%E4%B8%80%E8%88%AC%E5%87%BD%E5%BC%8F%E8%88%87%E7%AE%AD%E9%A0%AD%E5%87%BD%E5%BC%8F%E7%9A%84%E5%B7%AE%E7%95%B0-32ce9455ff1a) ## 聲明/宣告 Function的方法 一般來說可以使用這兩種方式去宣告函式方法 ```javascript= function newFuncOne(){ console.log('newFuncOne'); } var newFuncTwe = function fn() { console.log('newFuncTwe') } ``` 差異在 >區別在於它 newFuncTwe 是一個函數表達式,因此僅在到達該行時才定義 >而newFuncOne函數聲明,並在其周圍的函數或腳本執行後(由於提升)而定義。 ![](https://i.imgur.com/XKCYprm.png) --- 開發者可以透過 function 及 () 關鍵字來定義、撰寫函式: ```javascript= function fn() { // something awesome } ``` 另一種常見的寫法,是宣告一個變數,等號右邊放上函式宣告: ```javascript= var newFunc = function fn() { // something awesome } ``` 兩種寫法在使用上唯一的差異,就是第二種寫法在宣告前不能使用。 快問快答小知識: >Q:請問第二種寫法中的 newFunc.name 是什麼? >A:是 fn,而不是 newFunc 喔~ ![](https://i.imgur.com/DBuvGmI.png)