---
# System prepended metadata

title: 你不了解我表達的陳述
tags: [Javascript, 六角學院, JS 直播班 - 2021 秋季班]

---

# 你不了解我表達的陳述
### *何謂表達式(Expression)與陳述式(Statement)？*
![](https://i.imgur.com/tEdhb7G.png =60%x)

>javascript 之中的每段由編譯器所讀取的命令就是陳述式，
陳述式主要不會回傳一個結果，是以執行動作的行為本身為主，
表達式則是以回傳結果為主的一個命令，又或是可以稱為運算式，
javascript 在運算後會獲得一個回傳結果的命令就可以稱為表達式。

```javascript=
// 以為if 為例
if (){

} // 這個命令並不會回傳一個值，是作為動作行爲的即為陳述式

// 舉凡動作類型的，關鍵詞句均為陳述式的範圍
block { }
break
continue
if...else
switch
throw
try..catch
// 宣告類的也屬於陳述式
var
let
const 
return
class
// 迴圈類的也是陳述式
do...while
for
for...in
for...of
while
// 輸出與引入類別也是陳述式
debugger
export
import
```

```javascript=
// 表達式
(3 + 2) // 5 
// 這個計算出結果 5 的行為則是表達式
a = 2 // 賦值運算子也算是表達式 = “回傳” 了右方的結果

//舉凡會傳出一個值的關鍵詞句，均為表達式的範圍
this
function
class
[]
{}
/ab+c/i
()
//陣列、物件初始化與正規表達式與分組的運算子
//運算子的類型均屬於表達式的範疇

```

## 寫在結尾
簡單來說輸入的那串程式執行後能直接回傳一個值，那麼它就是個表達式，
大體來說陳述式即執行動作完成特定任務。
至於存在於兩者型態的東西 `function` `{}` 根據使用時機展現不同的形式就是另外的故事了

### 參考資料
[W3school - JavaScript Statements](https://www.w3schools.com/js/js_statements.asp)
[MDN - 運算式與運算子](https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Operators)
[MDN - 陳述式與宣告](https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Statements)

###### tags: `Javascript` `JS 直播班 - 2021 秋季班` `六角學院`