javascriptオブジェクトの使用と属性操作例の詳細


JavaScriptのすべての変数は対象です。二つの例外nullとundefinedを除いて。

false.toString(); // 'false'
[1, 2, 3].toString(); // '1,2,3'

function Foo(){}
Foo.bar = 1;
Foo.bar; // 1
一つのよくある誤解は数字の額面が対象ではないということです。これはJavaScript解析器のエラーのためで、点演算子を浮動小数点の数字面の一部として解析しようとしています。

2.toString(); // :SyntaxError
デジタルの額面を対象に見えるようにする方法がたくさんあります。

2..toString(); //
2 .toString(); //
(2).toString(); // 2
データの種類としてオブジェクト
JavaScriptのオブジェクトは、ハッシュ・テーブルとして使用することができ、主に名前付きキーと値の対応関係を保存するために使用される。
オブジェクトの文面文法-{}-を使って簡単なオブジェクトを作成できます。この新規作成したオブジェクトはObject.prototypeから引き継がれています。カスタム属性はありません。

var foo = {}; //

// , 12 'test'
var bar = {test: 12};
アクセスのプロパティ
オブジェクトの属性にアクセスするための2つの方法があります。

var foo = {name: 'kitten'}
foo.name; // kitten
foo['name']; // kitten

var get = 'name';
foo[get]; // kitten

foo.1234; // SyntaxError
foo['1234']; // works
の2つの文法は等価ですが、中かっこ操作子は下記の2つの状況で依然として有効です。動的設定属性-属性名は有効な変数名ではありません。
JSLint文法チェックツールでは、オペレーターをつけるのがおすすめです。
 
属性を削除
属性を削除する唯一の方法は、deleteオペレータを使用することである。属性がundefinedまたはnullに設定されていますが、属性と値の関連は削除されません。

14
var obj = {
    bar: 1,
    foo: 2,
    baz: 3
};
obj.bar = undefined;
obj.foo = null;
delete obj.baz;

for(var i in obj) {
    if (obj.hasOwnProperty(i)) {
        console.log(i, '' + obj[i]);
    }
}
上の出力結果はbar undefinedとfoo null-bazだけが本当に削除されたので、出力結果から消えました。
 
属性名の文法

var test = {
    'case': 'I am a keyword so I must be notated as a string',
    delete: 'I am a keyword too so me' // :SyntaxError
};
オブジェクトの属性名は、文字列または普通の文字宣言を使用することができます。しかし、JavaScript解析器のもう一つの誤った設計のため、上の第二の声明方式はECMAScript 5の前にSyntaxErrのエラーを投げます。
このエラーの原因はdeleteがJavaScript言語のキーワードです。したがって、より低いバージョンのJavaScriptエンジンでも正常に動作するためには、文字列の額面値宣言方式を使用する必要があります。