以下サラッとまとめる。
配列
Arrayオブジェクト。キーには数値を。
var boxes = ["index 0", "index 1", "index2", …];
boxes[1]; //文字列"index 1"を意味する
Arrayオブジェクトを操作してキーと値のペアを収めれば、それはもうJavaScriptでは配列として扱われる。キーは数値であり、その数値で対応する値を呼び出す。大抵プログラミング言語で配列と呼ばれるものの宣言・使用方法は、これと同じである。
boxes[1]; //文字列"index 1"を意味する
連想配列
JavaScriptのオブジェクトそのもの。キーには文字列を。
var boxes = {
key0 : "value0",
key1 : "value1",
…
};
boxes["key0"]; //文字列"value0"を意味する
boxes.key0; //こちらも文字列"value0"を意味する
キーに文字列を使った配列。角括弧でキーとなる文字列を指定する方法よりも,ドット記法(下)の方が一般的。キーは文字列であり、その文字列で対応する値を呼び出す。と言っても、配列という名前をしているこれは、実はJavaScriptで言うとオブジェクトそのものなのだ。JavaScriptのすべてのオブジェクトは連想配列で書ける。つまりObjectオブジェクトも、Stringオブジェクトも、Arrayオブジェクトも、みんな連想配列の形をしているということ。連想配列=オブジェクト。正直イコール3つでも問題ないだらう(連想配列===オブジェクト)//true! なのでキーというよりもプロパティ名と言った方が良いところ。下記参考サイトより、”とほほのJavaScriptリファレンス”を見てもらうと、この等式をイメージしやすい例が載っている。連想配列を”簡易的なオブジェクトの生成”と紹介している。
key0 : "value0",
key1 : "value1",
…
};
boxes["key0"]; //文字列"value0"を意味する
boxes.key0; //こちらも文字列"value0"を意味する
JSON
軽量かつ互換性が高い。キーには”文字列”を。
var boxes = {
"key0" : "value0",
"key1" : "value1",
…
};
boxes.key1; //文字列"value1"を意味する
JavaScriptだけに限らず、サーバー側(Webページ提供元)で動作することの出来る他のプログラミング言語(C++,Lisp,PHP,Javaなどなど)でも使える、互換性の良い連想配列。名前はJSONだが、これも連想配列だ。ただ連想配列と同じと言っても、キーをダブルクオーテーションで括る書き方でないとならないのは厄介だ(もちろん連想配列でも、キーをダブルクオーテーションで括る書き方ができる)。括らないと、JSONからオブジェクトへ変換する時にエラーを吐く。複数のデータをリストのようにまとめるならば、JSONを採用することでファイルサイズを小さくできると言われる(本当かどうか疑問)。これらのことからデータ通信に適したフォーマットとして注目されている(特にAjax)。最近のJavaScriptはJSONにネイティブ対応している。JavaScript上でJSON.parse(ファイル);を呼ぶだけで、JSONファイルをオブジェクトへと変換でき、そのまま扱えるようになる(なぜならば基本的な構文が連想配列と同じだからだ)。ちなみにキーは文字列であり、その文字列で対応する値を呼び出す。
"key0" : "value0",
"key1" : "value1",
…
};
boxes.key1; //文字列"value1"を意味する
参考サイトたち:
- Array | MDN
- Glossary | MDN
- JSON日本語 | JSON
- Standart ECMA-262 Edition 5.1 | ecma
- オブジェクト(Object) | とほほのJavaScriptリファレンス
- JavaScript "Associative Arrays" Considered Harmful | Painfully Obvious
5796088844076684458
https://www.storange.jp/2012/06/javascript-json.html
https://www.storange.jp/2012/06/javascript-json.html
JavaScriptの配列, 連想配列, JSON
2012-06-27T20:04:00+09:00
https://www.storange.jp/2012/06/javascript-json.html
Hideyuki Tabata
Hideyuki Tabata
200
200
72
72