---
# System prepended metadata

title: 筆記_javascript基礎攻略
tags: [jQuery, javascript]

---

# 筆記_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)



