JavaScript オブジェクト (詳細)

JavaScript オブジェクト (詳細)

JavaScript オブジェクト

1. 定義

オブジェクトは参照データ型であり、複雑なデータ型を格納するためのコンテナです。複数の属性 (データ) とメソッド (関数) の集合です。

属性の動的な追加と削除が可能

2. オブジェクトの分類

(1)組み込みオブジェクト

ES標準で定義されたオブジェクトは、どのES実装でも使用できます。

たとえば、math string number boolean object...

(2)ホストオブジェクト

jsランタイム環境によって提供されるオブジェクト。現在は主にブラウザによって提供されています。

たとえば、BOM DOM

(3)カスタムオブジェクト

開発者自身が作成したオブジェクト

3. オブジェクトを定義する

オブジェクトリテラル

オブジェクトリテラルを使用すると、オブジェクトを作成するときにオブジェクト内のプロパティを直接指定できます。

構文: {属性名:属性値、属性名:属性値...}

オブジェクトリテラルのプロパティ名は引用符で囲んでも囲まなくてもかまいませんが、引用符で囲まないことをお勧めします。

特別な名前を使用する場合は、引用符で囲む必要があります。

境界として「{ }」を使用し、属性を「,」で区切り、属性と属性値を「:」で区切ります。

var obj = {};

コンストラクタはオブジェクトを作成する

newキーワードで呼び出される関数はコンストラクタである

コンストラクタはオブジェクトを作成するために使用される関数です

typeof を使用してオブジェクトをチェックすると、オブジェクトが返されます。

var obj = 新しいオブジェクト();
console.log(obj のタイプ);

4. オブジェクトのプロパティにアクセスする

ポイントアクセスシンボル。

o.name => 'テリー'
o.年齢 => 12

[] アクセサ

o['name'] => 'テリー'
o['年齢'] => 12

オブジェクトに存在しないプロパティを読み取った場合、エラーは報告されませんが、undefined が返されます。

5. オブジェクトにプロパティを追加する

object.attribute = 属性値;

o.gender = '女性';

6. オブジェクトプロパティの削除

オブジェクトプロパティを削除します。

o.gender を削除します。

7.オブジェクトルートコンストラクタ

すべてのオブジェクトは直接的または間接的にObjectを継承し、Objectプロトタイプのメソッドを呼び出すことができます。

var o =新しいオブジェクト();
var arr = 新しい配列();

8. オブジェクト属性の検出

オペレーター

この演算子は、オブジェクトに指定された属性が含まれているかどうかを確認するために使用できます。

はいの場合はtrueを返し、そうでない場合はfalseを返します

文法:

オブジェクト内の「プロパティ名」

Obj 内の 'name';

9. 参照渡しと値渡し

基本データ型は値渡しされます。基本データ型はメモリのスタック領域に直接値を格納します。

js 内の変数はすべてスタック メモリに格納される基本データ型です。値はスタック メモリに直接格納されます。値は独立して存在します。1 つの変数を変更しても、他の変数には影響しません。
var a = 123;
var b = a;
++;
コンソールログ('a='+a); //124
コンソールログ('b='+b); //123

参照データ型は参照によって渡されます。参照データ型の参照アドレスはスタック領域に格納され、実際の値はヒープ領域に格納されます。参照アドレスはヒープ領域内のスペースを指します。

オブジェクトはヒープ メモリに格納されます。新しいオブジェクトが作成されるたびに、ヒープ メモリに新しいスペースが作成されます。

変数はオブジェクトのメモリアドレス(オブジェクトの参照)を格納します。2つの変数に同じオブジェクト参照が格納されている場合

1 つの変数のプロパティが変更されると、他の変数も影響を受けます。

var obj = 新しいオブジェクト();
obj.name='テリー';
var obj2 = obj;
 
//obj の名前属性を変更します。obj.name='tom';
 
console.log(obj.name); //トム
console.log(obj2.name); //トム

2つのプリミティブデータ型を比較す​​る場合、比較値は

2 つの参照データ型を比較す​​る場合、オブジェクトのメモリ アドレスを比較します。

2 つのオブジェクトが同一であるがアドレスが異なる場合も false を返します。

var c = 10;
var d = 10;
console.log(c==d); //true
 
 
var obj3 = 新しいオブジェクト;
var obj4 = 新しいオブジェクト;
obj3.name='トム';
obj4.name='トム';
console.log(obj3==obj4); //偽

10. オブジェクトのシリアル化(オブジェクトを文字列に変換する)

1) 従来の変換

obj.tostring()

2) json文字列に変換する

JSON.stringify(オブジェクト)

3) クエリ文字列

var qs = require('querystring'); //node.jsモジュールを導入する

qs.stringify(obj) =>名前=トム&年齢=12

11. 拡張 for ループ (for in)

オブジェクトの反復処理

文法:
for(var 変数 in オブジェクト){ }
for...in ステートメント オブジェクトに複数の属性がある場合、ループは複数回実行されます。

実行されるたびに、オブジェクト内のプロパティ名が変数に割り当てられます。

var obj = {
    名前:「孫悟空」
    年齢:18歳、
    性別: '男性'、
    住所:'花果山'
}
 
for(var n in obj){
    console.log('プロパティ名:'+n);
    console.log('プロパティ値: '+obj[n]);
    }

Java のスクリプト オブジェクト (詳細) に関するこの記事はこれで終わりです。JavaScript オブジェクトに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaScript によるデータ視覚化: ECharts マップの作成
  • 非常に詳細な基本的なJavaScript構文ルール
  • JavaScript における型の必須および暗黙的な変換の詳細な説明
  • JavaScriptはスライダーを介してWebページの色を変更することを実装します
  • JavaScript es6 における var、let、const の違いの詳細な説明
  • JavaScript における this ポイントの問題の詳細な説明
  • JavaScript 関数呼び出し、適用、バインド メソッドのケース スタディ
  • JavaScript における Arguments オブジェクトの使用に関する詳細な説明
  • JavaScript CollectGarbage 関数の例
  • JavaScript における BOM と DOM の詳細な説明
  • JavaScript の setTimeout と setTimeinterval の使用例の説明
  • 期間限定フラッシュセール機能を実現するJavaScriptタイマー
  • 期間限定フラッシュセール機能を実装するJavaScript

<<:  MySQLのトランザクション管理操作の詳細な説明

>>:  MySQL カーソルの原理と使用例の分析

推薦する

MySQL 8.0 バージョンで getTables がすべてのデータベース テーブルを返す問題の簡単な分析

序文この記事では、主にライブラリ内のすべてのテーブルを返すMysql8.0ドライバgetTables...

MySQLでクエリキャッシュを実行する方法と失敗を解決する方法

関数を使用する前にパラメータのプロパティを理解して、関数の使い方をより深く理解する必要があることは誰...

MySQL 8.0.3 RCがリリースされようとしています。変更点を見てみましょう。

MySQL 8.0.3がリリースされます。新機能を見てみましょうMySQL 8.0.3 は RC ...

InnoDB ロック (レコード、ギャップ、Next-Key ロック) の詳細な説明

レコード ロックは、単一のインデックス レコードをロックします。レコード ロックは常にインデックスを...

小さな画像をクリックしたときに更新せずに大きな画像コードが表示されるようにLightboxを実現するためにCSSを使用する

小さな画像をクリックしたときに更新せずに大きな画像コードが表示されるようにLightboxを実現する...

Vue2.0/3.0 での provide と inject の使用例

目次1. provide/inject の用途は何ですか? 2. provide/injectの使い...

Windows 10にWSL2 Ubuntu20.04をインストールしてdocker環境を構築する方法

WSLを有効にするシステムがWindows 10 2004以降であることを確認してください 「メニュ...

Dockerコンテナの状態変換の実装

Dockerコンテナの状態遷移図2度目の実戦 [root@localhost ~]# docker ...

挿入前にレコードが既に存在するかどうかを確認するには、SQL ステートメントを使用します。

目次SQL文を挿入する前にレコードが既に存在するかどうかを確認するSQL挿入時の判断の簡単なコレクシ...

子コンポーネントを通じて親コンポーネントのプロパティを変更するための Vue のさまざまな実装方法

目次序文一般的な方法1. 親コンポーネントを介して子コンポーネントの発行イベントをリッスンしてpro...

MySQL 8.0.12 のインストールと使用方法のチュートリアル

MySQL 8.0.12のインストールと使用のチュートリアルを録画しました。ウィンドウズまず、公式ウ...

W3C チュートリアル (6): W3C CSS アクティビティ

スタイル シートは、ドキュメントの表示方法、発音方法、または入力方法を記述します。スタイル シートは...

Vue のライフサイクルとフック関数

目次1.ライフサイクルとは何か2. Vueのライフサイクル3. ライフサイクルフック関数1.ライフサ...

jsはショッピングウェブサイトの商品の拡大鏡効果を実現します

この記事では、ショッピングサイトの商品の拡大鏡効果を実現するためのjsの具体的なコードを紹介します。...