Javascript 学習 及び基本技術者試験テキストの読書
Javascript 1/2
繰り返し処理
繰り返し処理にはwhile(〜の間という意味)文を用いる。条件式がtrueの間は処理する、というような意味である。
条件式に、どこまで繰り返し処理するかという条件を定め、処理部分に繰り返し処理をしたいコードを書く、という流れになる。ちなみに下図でnumberを入力し続けると処理が終わらなくなり無限ループになる。
for文
繰り返し処理にはwhile文の他にfor(対称を求めて指さすイメージ)がある。
for()の中に「変数の定義」「条件式」「変数の更新」を打ち込むことで、While文に比べてシンプルに表記できるのがメリット(括弧の中はセミコロンで区切る。ただし変数の更新の背後にはつけないこと!)。
ちなみにnumber += 1をnumber ++とも省略できる。これは-でも同じことが言える。
演習で出てきたif( number %3 === 0 )の意味は3で割り切れたとき(すなわち3の倍数の時)、の意味になる。
配列
複数の値をまとめて管理するための文が配列。[値1, 値2, 値3] のように作り、それぞれの値を要素という。定数は複数形にするのが一般的。
配列も一つの値なため、定数に代入数することができる。
要素の取得
配列の各要素にはインデックスが割り振られており、定数とインデックス[x]を組み合わせることで任意の要素を選択できる。
配列の更新
変数の更新のように、配列の更新もできる。
配列の繰り返し
要素が3つある場合、3回も出力するのは面倒なので、forの繰り返し処理で効率よく行える。
なお記号Iはindexの頭文字である。
下の画像のfor文は変数をiと定義し、iが3未満と条件式を作り、i+1の変数の更新と定めた繰り返し処理である。
length文
画像のように配列.lengthとすることで配列の要素数を取得できる(要素の端から端というイメージ)。
また上のfor文の条件式に使った3の部分をlength置き換えて出力することもできる。下画像ならばanimals.lengthとなる。
これにより数値の打ち間違いを避けることができる。
オブジェクト
オブジェクトとは複数の数値を管理するのに用いられる。配列が複数の値をまとめて管理するのに対し、オブジェクトは値ごとにプロパティと呼ばれる名前をつけて管理する。
中括弧で括り、プロパティと値はコロン:で繋ぐ。
オブジェクトは定数に代入することもできる。
オブジェクトの値を取り出すには対応するプロパティ名を用いて 「オブジェクト.プロパティ名」のようにする。画像ならitemがオブジェクト、nameがプロパティなので(item.nameとなる。)
「オブジェクト.プロパティ名 = 新しい値」とすることでオブジェクトの値を更新することもできる。
オブジェクトを要素に持つ配列
配列には値や文字列の他にもオブジェクトを用いることもできる。,(カンマで区切るのを忘れないように)
当然、配列なのでインデックスも割り振られる。
さらにオブジェクトの中の値だけを抜き出したいときは配列の定数名.[index].値で出力できる。これまでの知識の組み合わせなだけなので複雑に考えることもない。
オブジェクトの配列の繰り返し処理
ーーーーーーーと名前および年齢が繰り返し処理されている。characterと定義することでシンプルになっているが、その部分を消去してcharacters[i]でも出力しても問題はない。
定義されていない要素(undefined)
定義付けされてないインデックスを指定して出力された場合、undefinedと出力される。
しかし、if else文を使えば、undefinedと表示されたときに別の表現方法で表示することが可能になる。
複雑なオブジェクトを呼び出すときも、オブジェクト名.プロパティ.プロパティで呼び出せる。一見服雑だが基本は同じである。
配列内のオブジェクト内に配列を作ることもできる。
[]は要素を宣言するときに使う。一つ一つにindex番号が割り振られるようになる。
上の画像のfoodはその典型である。
一方、{opening: "10:00(AM)”}のようなものはオブジェクトなので、コロンを使い、プロパティと値に分かれる。
つまり、配列はindexを参照し、要素はプロパティを使って参照する。
どちらを使うかは状況次第となる。
例えば、数値だけが順番にならんでいるようなデータなら配列が適切である。
ID、名前、住所、電話番などのデータをまとめて扱うならオブジェクトが適切(属性を表現できるため)。