質問: { hoge: if (xxx) { xxxxxx } } みたいなの書こうとしてたんですけどこれダメですよね。 そこでなんでダメなんだろうと調べていたら 文(statement)、式(expression)、データ、関数 さらにはfunction expression、function statement、制御構文などなど ちょっといろんな単語が多すぎてよく分からなくなってしまいました。 基本はデータと関数だと思うのですが、 1まずifelseを上記のように書けない理由 2文と式、関数とデータの関係 についてご説明いただけると助かります!!!!
回答: const test = { ←オブジェクト定義の始まり hoge: if (xxx) { xxxxxx } } ←オブジェクト定義の終わり >hoge: if (xxx) { xxxxxx } ↑オブジェクト定義内の「:」は「=」と等価です。 hoge = if (xxx) { xxxxxx } ← エラーになる。 つまり、右辺は「演算式、オブジェクト(配列、関数)」などでなければなりません。 >文と式、関数とデータの関係 文(statement)は変数に代入できません、逆に言うと変数に代入できないものは文(statement)とも言えます。 「配列、関数」はオブジェクトです。 演算式はプリミティブ(数値、文字列など)な「定数、変数、演算」です。