見出し画像

ExpressionとStatementの違い

プログラミング言語の構文の要素は、式と文に分類される

Expression(式)

Expressionとは、値を生成して変数にその値の評価値を代入できるもの

// 1という式の評価値を表示
console.log(1);

// 式の評価値を変数に代入
const total = 1 + 1;

// 関数式の評価値(関数オブジェクト)を変数に代入
const fn = function() {
 return 1;
};

// fn()という式の評価値を表示
console.log(fn()); // 1

 Statement(文)

処理をする1つ1つのステップ(if文やfor文など)

特徴
・ 文の行末に`;`を書くことで文と文を区別する
・ 文は変数に代入できない
・ 文を`{}`で囲ったものをブロック文という

// if文とブロック文の組み合わせ
if (true) {
 console.log("hi");
}

// ブロックで終わらない文なので、セミコロンが必要
if (true) console.log(true);

// ブロックで終わる文なので、セミコロンが不要
if (true) {
   console.log(true);
}


function文とfunction式

「ブロックで終わる文」には;は不要

// learn関数を宣言する関数宣言文
function learn() {
}

// 関数式をread変数へ代入
const read = function() {
};

上記式では、functionという匿名関数は「式」であり、ここで行われている処理はleadという変数を宣言する文の一部である。あくまで全体としてはなので文末には;(セミコロン)をつける必要がある。



参照:JavaScript Primer

.