配列宣言
var members = ['田中', '鈴木', '佐藤'];
空の配列を作成する場合、下記のどちらでも同じ。
var members = [];
var members = new Array();
要素数を指定して作成。中身はundefinedになっている。
var members = new Array(10); //10個の要素が出来る
あなぬけで作成。
var members = ['abc', , , 'def']; //members[1]と[2]はundefined
存在しない要素にアクセスするとundefined
var members[2] = ['田中', '鈴木']
console.log(members[5]); //undefined
存在しない要素に代入すると拡張する。
members[5] = '佐藤'; // ['田中', '鈴木', undefined, undefined, undefined, '佐藤']
lengthプロパティを変更することでも長さを変更できる。
今のlengthより大きい数字を入れれば拡張するし、小さくすれば縮小する。
小さくした時に、はみ出た要素は削除される。
配列を全削除するのにlengthに0を代入する使い方もある。
members.length = 10;
配列の最後に要素を追加
var members = ['田中', '鈴木']
members.push('佐藤'); //'田中' '鈴木' '佐藤'
配列の連結
Array.concat()を使用する。
連結した新しい配列を戻り値で返す。
配列内の要素が参照の場合、新しい配列でも参照をそのまま所持する。
(連結前と連結後で同じ参照を持つ)
var arrayA = ['A', 'B', 'C'];
var arrayB = ['x', 'y', 'z'];
var arrayC = arrayA.concat(arrayB); // 'A', 'B', 'C', 'x', 'y', 'z'
多次元配列
var members = ['田中', '鈴木', '佐藤', ['東京', '神奈川', '埼玉'] ];
オブジェクトリテラル(連想配列、クラス代わりにも使用)
var member = {
name:'田中',
age:15,
birthplace:'東京',
'job':'エンジニア' //キーをクォーテーションで囲ってもいいが囲わないのが推奨
};
新規のプロパティ名に代入する形で、変数宣言後に追加もできる。
var member = {};
member['name'] = '田中';
member['age'] = 15;
member['birthplace'] = '東京';
下記は同じ意味。どちらを使っても良い。
var member = new Object();
var member = {};
ドット演算子を使ったアクセス
console.log(member.name)
プロパティ名を利用(ブラケット構文)
console.log(member['name']);
プロパティ名は変数に代入していても使える
var key = 'name';
console.log(member[key]);
ドット演算子は、数字から始まるプロパティ名を扱えないし、変数を使ったアクセスもできない。
var key = 'name';
console.log(member.key); //これはエラー