陳述式 (Statement)
陳述式一定會做一些事情,但陳述式不會產生(回傳)數值。所以不能被放在 JS 內預期會產生數值的地方。
什麼意思是不能被放在 JS 內預期會產生數值的地方呢?
1 | var a = if(){ |
因為 if 是陳述式,所以它不會回傳值。
下列都是 JavaScript 的陳述式:
- 變數宣告
- if 判斷式
- while 迴圈
- for 迴圈
- switch 迴圈
- 函式陳述式
上面的這些都是陳述式,這些程式碼都會執行某些動作,但是它們都有一個共通的特性,那就是不會回傳一個值給你。
這裡有一點要注意
1 | // 區塊陳述 (Block Statement) |
這邊如果宣告
1 | var a = { |
而物件實字則是會回傳。
表達式(Expression)
表達式會回傳一個值,且很常是運算式。
表達式是一段 JS 直譯器能夠運算並產生數值的程式碼。
可以發現上圖這些程式碼都會回傳一個值,所以這些都是表達式。
函式陳述式、函式表達式
兩者差別在於 hoisting 的不同。提升章節有說到。
1 | // 函式陳述式、具名函式 |