for文で出力のために定数を定義する理由

JavaScript

今回はProgateをやっていて生まれた疑問をぎりぎり理解できている今のうちに整理します。

該当講座:JavaScript学習コースⅡ>オブジェクト>13.オブジェクトを要素に持つ配列(2)

分からなかったところ

for文を記述する際に出力の前に一度定数を定義するのが正解でした。でもわざわざ定数定義せず、配列から直接出力しても結果は一緒やん・・・

定数を定義しなかった場合とした場合の出力結果

①しなかった場合

定数を定義しなかった場合

②した場合

まず8行目で定数定義の有無、14,17行目で配列から直接呼び出すか、定数から呼び出すかが異なります。

コンソールの出力結果同じですやん。

どうしても分からなかったので最終手段、「ご意見箱」から定数を定義する理由を教えてほしいとご意見させていただきました。

記述コードの簡略化、修正時の手間削減のため

なんと次の日には丁寧なご回答をいただきました。(問合せたのが日曜だったから平日ならもっと早いのかも)

①プログラムを書く人や読む人にとって分かりやすくするため

②出力する対象が変わったときに書き換える箇所を減らせる

分かりやすくするためとは

教えてくださった内容は「例えば characters[i] の i がもっと複雑な式だったら」でした。

例えば i が i * 2だったら?と。たしかにめっちゃめんどい。(i*2なんて式はありえるのかな?ただの例かな?)

もし出力するのが名前、年齢、住所、電話番号・・・・だったら項目一つ増えるたびに長ったらしい式を書く回数が増えちゃいますね。絶対いやだ。書き間違える可能性も増えちゃいますね。

書き換える箇所を減らすためとは

出力したいものが characters[i] じゃなくてcharacters[i*3]に変わった場合、下の画像の14、17行目を書き換えないといけないですね。

それがまた上記でも言ったように「名前、年齢、うんぬんかんぬん・・・」と10個項目があったら10回書き換えないといけない。めんどくさい。めんどくさすぎる。たぶん実際の環境だと100個とかもあり得るのでは・・・

定数を定義しなかった場合

それが定数を定義していると下の画像の11行目だけで良い!(ってことかな?)

たぶん8行目も書き換えないといけないよね?でも100個あるときに比べたらましですよねっと。

画像に alt 属性が指定されていません。ファイル名: image-2-1024x385.png

まだまだ理解しきれてない部分はありますが分かったと思います!たぶん!

コメント

タイトルとURLをコピーしました