式・文・式文(JavaScript / TypeScript)

式(Expression)

評価すると値になるもの。

結果があるかどうか、ともいう

変数に代入できる。

1 + 1              // 式
fn()               // 式
flag ? "a" : "b"   // 式(三項演算子)
function () {}     // 式(関数式)

文(Statement)

処理の1ステップ

値にならないので代入できない

if (x) { ... }     // 文
for (...) { ... }  // 文
return x;          // 文
 
const a = if (true) { 1 }; // SyntaxError(文は式になれない)

式文(Expression statement)

文を書く場所に式を単独で置いたもの(式は文になれる

評価値は捨てられるが、以下のような式の場合意味はある

  • 変数への代入
  • 変数の更新
  • 関数を実行したいが、その結果に興味はない場合
    • 例: console.log → コンソールに文字列表示したいだけで、console.log()の返す値がほしいわけではない
console.log("hi"); // 式文
i++;               // 式文
1 + 1;             // 式文だが値が捨てられる=無意味