ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript アドバンスト シリーズ - オブジェクトの使用法とプロパティ
データ型としてのオブジェクト
プロパティにアクセス
プロパティを削除
プロパティ名の構文
JavaScriptのすべての変数を使用可能オブジェクトとして。 2 つの例外は null と unknown です。
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']; // works2 つの構文は同等ですが、角括弧演算子は次の 2 つの状況でも有効です 属性の動的設定
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 unknown と 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 パーサーの別の設計が間違っているため、上記の 2 番目の宣言メソッドは ECMAScript 5 より前に SyntaxError をスローします。