JavaScript Expressions VS Statements
了解 JavaScript 運算式與表達式
Expressions 表達式
表達式產生一個值
1
產生值1
你好
產生值你好
5 * 10
產生值50
age >= 18
產生值true
或false
isHappy ? "🙂" : "🙁"
產生值🙂
或🙁
(function () { return 'Hi'; }())
產生值Hi
({a: 1})
產生值{a: 1}
Statements 運算式
執行動作完成任務
運算是就像是指令,使用它會執行一些預定的動作。有運算式的地方都可以輸入表達式
表達式與運算式
表達式本身是個值,並不能單獨的存在,它必須永遠存在於某個運算式中。此外在特殊的情況下你會需要使用 ()
來包覆表達式,否則 JavaScript 會錯誤的將其當作運算式。
總結
還有一個簡單的方法辨別表達式與運算式,就是把它們丟進 console.log
,如果無語法錯誤且能執行就是「表達式」,反之就是「運算式」(或單純是不合規的語法)。我回過頭來才發現表達式與運算式的重要性,特別是像在寫 React / JSX 這類框架上的一些奇怪的限制,像是:「只能回傳一個元素」、「為什麼要用表達式來撰寫?」,實際上是 JavaScript 本身運作上的限制。