4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

オブジェクト

Last updated at Posted at 2014-01-31

いろんな種類のデータを扱う時

例えば、「美浜さん」と言う人のデータを定義するときに、、、
①変数でやってみると

var personName = '美浜ちよ';
var personAge = 10;
var personGender = 'female';
document.write(personName); //=> 美浜ちよ

と書き出しが多くなってしまう。

②配列を使ってみると

var person = ['美浜ちよ', 10, 'female'];
var person = person[0];
document.write(person); //=> 美浜ちよ

と1つにまとまったが、今度は内訳が何を意味してるのか分かりづらい。

③オブジェクトを使うと以下の様に出力できる。

var person = {
    name: '美浜ちよ',
    age: 10,
    gender: 'female'
};
var name = person.name;
document.write(name); //=> 美浜ちよ

•名前をはきだした場合
名前.png
•年齢の場合
年齢.png

③−①入れ子になってるオブジェクトの吐き出し

var person = {
    name: '美浜ちよ',
    age: 10,
    gender: 'female',
    address: {
        pstcode: '100-0001',
        pref: '東京都',
        city: '千代田区'
    }    
};
var city = person.address.city;
document.write(city); //=> 千代田区

入れ子.png

オブジェクトの書き方

名前と値のペアを「プロパティ」、値につける名前を「プロパティ名」と言います。
オブジェクトは{}で括って定義し、プロパティ名と値を(;)で区切り、それぞれのペアをカンマ(,)で区切ります。

下の様なひな形がよく使われる。↓

var obj = {
	key1: val1,
	key2: val2,
	key3: val3
};

オブジェクト②

[]を使ってプロパティ名を指定して値を取得

オブジェクトの値の取得方法にはもう1つあります。
配列と同じ様に[]を使ってプロパティ名を指定する方法です。

var person = {
    name: '美浜ちよ',
    age: 10,
    gender: 'female'
};
var key = 'name';
var name = person[key];
document.write(name); //=> 美浜ちよ

この様に変数を使って値を取得するには[]を使う必要がある。
よって[]を使わないと取得出来ないとき以外は、前回やった「ピリオド」を使うのが一般的である。

プロパティの追加

存在しないプロパティ名に値を代入すると、新しくプロパティを作ることが出来る。

var person = {
    name: '美浜ちよ',
    age: 10,
    gender: 'female'
};
person.kana = 'みはまちよ';
document.write(person.kana); //=> みはまちよ

追加.png

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?