表達式是可以被評估並解析為值的代碼單位。JavaScript 中的表達式可以分為各種類別。

算術表達式

屬於這個類別的表達式都會計算為一個數字:

1 / 2
i++
i -= 2
i * 2

字串表達式

計算為字串的表達式:

'A ' + 'string'

基本表達式

這個類別包括變數引用、字面量和常數:

2
0.02
'something'
true
false
this // 當前物件
undefined
i // i 為變數或常數

還有一些語言中的關鍵字:

function
class
function* // 產生器函數
yield // 產生器暫停/恢復運行
yield* // 委派給另一個產生器或迭代器
async function* // 异步函數表達式
await // 異步函數暫停/恢復/等待完成
/pattern/i // 正則表達式
() // 分組

陣列和物件初始化表達式

[] // 陣列字面量
{} // 物件字面量
[1,2,3]
{a: 1, b: 2}
{a: {b: 1}}

邏輯表達式

邏輯表達式使用邏輯運算符並產生布林值:

a && b
a || b
!a

左邊表達式

new // 創建一個構造函數的實例
super // 調用父類的構造函數
...obj // 使用展開運算符的表達式

查看 展開運算符 教程

屬性存取表達式

object.property // 引用對象的屬性(或方法)
object[property]
object['property']

物件創建表達式

new object()
new a(1)
new MyRectangle('name', 2, {a: 4})

函數定義表達式

function() {}
function(a, b) { return a * b }
(a, b) => a * b
a => a * 2
() => { return 2 }

調用表達式

呼叫函數或方法的語法:

a.x(2)
window.resize()