JavaScript object
5776 ワード
ノート:this blog copied from:http://www.k99k.com/ ,if resip it,pls note the resource.
javascriptでは、オブジェクトは実際には、次のuserオブジェクトのようなハッシュテーブルです。
少し変更して、オブジェクトの代わりにArayオブジェクトを使用します。
もっと簡単な書き方:
以上のコードから見られます。のすべてのjavascriptオブジェクトは、Arayオブジェクトを含む実際には、ハッシュ・テーブルであり、属性名はハッシュ・テーブルのkeyであり、属性の値はハッシュ・テーブルの値である。 Arayオブジェクトは、通常の意味の配列オブジェクトとは関連しないが、通常の配列は、下付きによってのみ位置を特定することができ、javascriptの中のArayは、ハッシュテーブルのように、keyによってセット内のオブジェクトを特定することができる。 は、一つのfunctionを直接値として対象に割り当てられる「ハッシュ・テーブル」とすることができる。 前の時間に阮一峰の「データタイプとJson形式」文を見ました。yamlの記述データについて言及すると、すべてのデータを3つのタイプに分けます。の第一のタイプはscalarで、単独のstringや数字、例えば「北京」という単独の言葉です。 の第二のタイプはSequenceで、いくつかの関連データは一定の順序で並べられています。array(配列)またはList(リスト)ともいいます。例えば、「北京、東京」です。 の第3のタイプはmap(マッピング)で、一つのキー/値ペア(Key/value)は、hash(ハッシュ)またはdictorary(辞書)とも呼ばれています。例えば、「首都:北京」です。 この3つのタイプはよく知っていますが、文の中でJsonの4つのルールはjavascriptがデータを記述する方式を分析しました。並列のデータ間はカンマ(",")で区切られます。 マッピングは、コロン(:)で表される。 並列データのセット(配列)は、四角括弧(''')で表される。 にマッピングされたセット(オブジェクト)は、大かっこ({})で表される。 この4つのルール(functionに対する理解を加える)があり、非常に奇妙に見える書き方が多く理解できます。したがって、Javascriptオブジェクトは、実際には配列またはマッピングです。配列とマッピングの違いについては、以下の例を参照してください。は、メンバーの位置付けの方法から、マッピングはkeyを使用してその中のメンバーを位置付けし、配列は下付きを使用し、マッピングは下付きの位置付けを使用することができません。同様の配列もkeyを使用することができません。 は、表現方法から、マッピングは、類似のオブジェクト属性を使用してアクセスすることができ(例えば、m.name)、keyを伴う[]方式を使用してもよい(例えば、m[name]])、これはjavascriptの特殊な例であり、配列のように見えるが、実際にはまだマッピングされている)。しかし、配列は下付きの方式だけを使用できます。 は、シーケンスから見て、配列は順序があり、マッピングは無秩序である。 データタイプとjsonフォーマット:(Note:thisブログcopied from:http://www.ruanyifeng.com/blog/2009/05/data_types_and_json.html ,if u resip it,pls note the resource.)
1.
先日、簡単なデータ交換フォーマットがあることを知りました。yamlといいます。
私は一回その文書をひっくり返して、分かるところは多くないですが、一つの言葉が私の目を覚ましました。
構造的に見て、すべてのデータは最終的に三つのタイプに分けることができるという。
第一のタイプはscalarで、つまり単独のstring(文字列)または数字(numbers)です。例えば、北京という単独の言葉です。
第二のタイプはSequenceで、つまりいくつかの関連データが一定の順序で並べられています。array(配列)またはList(リスト)とも言います。例えば、「北京、東京」です。
第三のタイプはmapping(マッピング)であり、つまり名前とデータには名前があり、それに対応する値があります。これはhash(ハッシュ)またはdictionary(辞書)とも呼ばれます。例えば「首都:北京」です。
データ構成の最小単位はなるほど簡単だったと、私ははっと悟った。プログラミング言語では、配列とオブジェクトがあれば、すべてのデータを保存することができます。
2.
すぐにJsonを思い出しました。
21世紀の初め、Duglas Crockfordは簡単なデータ交換フォーマットを探しています。サーバー間でデータを交換することができます。これは実際には二段階が必要です。第一歩は各種データを一文字列に変換することです。つまりデータのシリアル化です。第二ステップはこの文字列を交換することです。
当時通用していたデータ交換言語はXMLであったが、Duglas CrockfordはXMLの生成と解析が面倒だったので、彼は簡単なフォーマット、つまりJsonを提出した。
Jsonの規格は非常に簡単で、一つのページ、数百字だけではっきり言えます。そしてDuglas Crockfordはこの規格は永遠にアップグレードする必要がないと言います。この規定は全部決まりました。
1)並んでいるデータの間をコンマ(",")で区切ってください。
2)マッピングはコロン(:)で表されます。
3)並列データの集合(配列)は、大かっこ([])で表されます。
4)マッピングされたセット(オブジェクト)は、大かっこ({})で表されます。
上の四つの規則はJson形式のすべての内容です。
例えば、次の言葉:
北京市の面積は16800平方キロメートルで、常住人口は1600万人です。上海市の面積は6400平方キロメートルで、常住人口は1800万人です。
Json形式にするとこうなります。
[{「都市」:「北京」,「面積」16800,「人口」:1600]、{都市]:「上海」,「面積」:6400,「人口」:1800]]
データの仕組みを知っていれば、上記の書き方はさらに簡略化されます。
[[北京],16800,1600],[上海],6400,1800]
このことから、Jsonは非常に学びやすく、使いやすいです。だから、短い数年の中で、それはxmlに取って代わって、インターネットの上で最も人気があるデータの交換のフォーマットになりました。
私の予想では、Duglas Crockfordは必ず事前に知っています。データ構造は3つの形式に簡略化できます。そうでなければ、jsonの定義をこんなに精緻にすることはできません。
3.
私はjavascriptを勉強している時、一度は「行列」と「対象」の根本的な違いが分かりませんでした。両者はデータの集合を表しています。
たとえば、配列a=[1,2,3,4]があり、オブジェクトa={0:1,2,2:3,3:4}があり、次にalert(a[1])を実行します。二つの場合の運行結果は同じです。つまり、データセットは配列でも対象でも表すことができますが、どれを使うべきですか?
配列は秩序データの集合を表し、対象は無秩序データの集合を表すことを後から知った。データの順序が重要であれば、配列を使います。そうでなければ対象を使います。
4.
もちろん、配列とオブジェクトの別の違いは、配列中のデータには「名前」がなく、オブジェクト中のデータには「名前」があります。
しかし問題は、多くのプログラミング言語の中に「関連配列」というものがあります。この配列のデータには名前があります。
javascriptでは、このようにオブジェクトを定義することができます。
var a={「都市」:「北京」、「面積」:16800、「人口」:1600}
しかし、関連配列として定義することもできる。
a[都市]=「北京」a[面積]=16800a[人口]=1600;
これは最初に同じく私の組と対象に対する混淆を激化させて、後でやっと分かって、Javascript言語の中で、関連配列は対象で、対象は関連配列です。この点はphp言語とは全く違って、phpでは関連配列も配列です。
たとえば、次のセクションjavascriptを実行します。
var a=[1,2,3,4]
a['foo'='Hello World'
alert(a.length)
最後の結果は4です。つまり、配列aの要素の個数は4つです。
しかし、同じ内容のphpコードを実行すると違います。
$a=array(1,2,3,4);
$a[[foo]=[Hello world]
echo count($a)
最後の結果は5です。つまり、配列aの要素の個数は5つです。
javascriptでは、オブジェクトは実際には、次のuserオブジェクトのようなハッシュテーブルです。
function user(n, a)
{
this.name = n;
this.age = a;
this.toString = function() {
return 'Name:' + this.name + ', Age:' + this.age;
}
}
var u = new user('tom', 18);
for (var k in u) {
alert('key: ' + k + ', value:' + u[k]);
}
少し変更して、オブジェクトの代わりにArayオブジェクトを使用します。
var user = new Array();
user['name']='tom';
user['age']=18;
user['toString']=function(){
return 'Name:' + this.name + ', Age:' + this.age;
}
alert(user.toString());
もっと簡単な書き方:
var u = {
'name':'tom',
'age':18
}
u.toString = function(){return 'Name:' + this.name + ', Age:' + this.age;};
alert(u.toString());
以上のコードから見られます。
var m = {
name:'keel',
age:5
}
var a = [m,'sss',3];
// name
alert(m['name']);
alert(a[0]['name']);//a[0] m
alert(a[0].name);
//
alert(m[0]);//
1.
先日、簡単なデータ交換フォーマットがあることを知りました。yamlといいます。
私は一回その文書をひっくり返して、分かるところは多くないですが、一つの言葉が私の目を覚ましました。
構造的に見て、すべてのデータは最終的に三つのタイプに分けることができるという。
第一のタイプはscalarで、つまり単独のstring(文字列)または数字(numbers)です。例えば、北京という単独の言葉です。
第二のタイプはSequenceで、つまりいくつかの関連データが一定の順序で並べられています。array(配列)またはList(リスト)とも言います。例えば、「北京、東京」です。
第三のタイプはmapping(マッピング)であり、つまり名前とデータには名前があり、それに対応する値があります。これはhash(ハッシュ)またはdictionary(辞書)とも呼ばれます。例えば「首都:北京」です。
データ構成の最小単位はなるほど簡単だったと、私ははっと悟った。プログラミング言語では、配列とオブジェクトがあれば、すべてのデータを保存することができます。
2.
すぐにJsonを思い出しました。
21世紀の初め、Duglas Crockfordは簡単なデータ交換フォーマットを探しています。サーバー間でデータを交換することができます。これは実際には二段階が必要です。第一歩は各種データを一文字列に変換することです。つまりデータのシリアル化です。第二ステップはこの文字列を交換することです。
当時通用していたデータ交換言語はXMLであったが、Duglas CrockfordはXMLの生成と解析が面倒だったので、彼は簡単なフォーマット、つまりJsonを提出した。
Jsonの規格は非常に簡単で、一つのページ、数百字だけではっきり言えます。そしてDuglas Crockfordはこの規格は永遠にアップグレードする必要がないと言います。この規定は全部決まりました。
1)並んでいるデータの間をコンマ(",")で区切ってください。
2)マッピングはコロン(:)で表されます。
3)並列データの集合(配列)は、大かっこ([])で表されます。
4)マッピングされたセット(オブジェクト)は、大かっこ({})で表されます。
上の四つの規則はJson形式のすべての内容です。
例えば、次の言葉:
北京市の面積は16800平方キロメートルで、常住人口は1600万人です。上海市の面積は6400平方キロメートルで、常住人口は1800万人です。
Json形式にするとこうなります。
[{「都市」:「北京」,「面積」16800,「人口」:1600]、{都市]:「上海」,「面積」:6400,「人口」:1800]]
データの仕組みを知っていれば、上記の書き方はさらに簡略化されます。
[[北京],16800,1600],[上海],6400,1800]
このことから、Jsonは非常に学びやすく、使いやすいです。だから、短い数年の中で、それはxmlに取って代わって、インターネットの上で最も人気があるデータの交換のフォーマットになりました。
私の予想では、Duglas Crockfordは必ず事前に知っています。データ構造は3つの形式に簡略化できます。そうでなければ、jsonの定義をこんなに精緻にすることはできません。
3.
私はjavascriptを勉強している時、一度は「行列」と「対象」の根本的な違いが分かりませんでした。両者はデータの集合を表しています。
たとえば、配列a=[1,2,3,4]があり、オブジェクトa={0:1,2,2:3,3:4}があり、次にalert(a[1])を実行します。二つの場合の運行結果は同じです。つまり、データセットは配列でも対象でも表すことができますが、どれを使うべきですか?
配列は秩序データの集合を表し、対象は無秩序データの集合を表すことを後から知った。データの順序が重要であれば、配列を使います。そうでなければ対象を使います。
4.
もちろん、配列とオブジェクトの別の違いは、配列中のデータには「名前」がなく、オブジェクト中のデータには「名前」があります。
しかし問題は、多くのプログラミング言語の中に「関連配列」というものがあります。この配列のデータには名前があります。
javascriptでは、このようにオブジェクトを定義することができます。
var a={「都市」:「北京」、「面積」:16800、「人口」:1600}
しかし、関連配列として定義することもできる。
a[都市]=「北京」a[面積]=16800a[人口]=1600;
これは最初に同じく私の組と対象に対する混淆を激化させて、後でやっと分かって、Javascript言語の中で、関連配列は対象で、対象は関連配列です。この点はphp言語とは全く違って、phpでは関連配列も配列です。
たとえば、次のセクションjavascriptを実行します。
var a=[1,2,3,4]
a['foo'='Hello World'
alert(a.length)
最後の結果は4です。つまり、配列aの要素の個数は4つです。
しかし、同じ内容のphpコードを実行すると違います。
$a=array(1,2,3,4);
$a[[foo]=[Hello world]
echo count($a)
最後の結果は5です。つまり、配列aの要素の個数は5つです。