JavaScriptオブジェクト
JavaScriptでは、オブジェクトが重要です。オブジェクトを理解すれば、JavaScriptを理解できます。
JavaScriptでは、ほとんど「すべて」がオブジェクトです。
new
ブール値はオブジェクトにすることができます(キーワードで定義されている場合)new
数値はオブジェクトにすることができます(キーワードで定義されている場合)new
文字列はオブジェクトにすることができます(キーワードで定義されている場合)- 日付は常にオブジェクトです
- 数学は常にオブジェクトです
- 正規表現は常にオブジェクトです
- 配列は常にオブジェクトです
- 関数は常にオブジェクトです
- オブジェクトは常にオブジェクトです
プリミティブを除くすべてのJavaScript値はオブジェクトです。
JavaScriptプリミティブ
プリミティブ値は、プロパティやメソッドを持たない値です。
プリミティブデータ型は、プリミティブ値を持つデータです。
JavaScriptは、5種類のプリミティブデータ型を定義しています。
string
number
boolean
null
undefined
プリミティブ値は不変です(ハードコードされているため、変更できません)。
x = 3.14の場合、xの値を変更できます。ただし、3.14の値を変更することはできません。
価値 | タイプ | コメント |
---|---|---|
"こんにちは" | ストリング | 「こんにちは」は常に「こんにちは」です |
3.14 | 番号 | 3.14は常に3.14です |
true | ブール値 | trueは常にtrueです |
false | ブール値 | falseは常にfalseです |
ヌル | null(オブジェクト) | nullは常にnullです |
未定義 | 未定義 | undefinedは常にundefinedです |
オブジェクトは変数です
JavaScript変数には、単一の値を含めることができます。
例
let person = "John Doe";
JavaScript変数には多くの値を含めることもできます。
オブジェクトも変数です。ただし、オブジェクトには多くの値を含めることができます。
オブジェクトの値は、名前:値のペア(コロンで区切られた名前と値)として記述されます。
例
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
JavaScriptオブジェクトは、名前付きの値のコレクションです
const
キーワードを使用してオブジェクトを宣言するのが一般的な方法です。
例
const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
オブジェクトのプロパティ
JavaScriptオブジェクトでは、名前付きの値はプロパティと呼ばれます。
財産 | 価値 |
---|---|
ファーストネーム | ジョン |
苗字 | Doe |
年 | 50 |
目の色 | 青い |
名前と値のペアとして記述されたオブジェクトは、次のようなものです。
- PHPの連想配列
- Pythonの辞書
- Cのハッシュテーブル
- Javaのハッシュマップ
- RubyとPerlのハッシュ
オブジェクトメソッド
メソッドは、オブジェクトに対して実行できるアクションです。
オブジェクトのプロパティは、プリミティブ値、他のオブジェクト、および関数の両方にすることができます。
オブジェクトメソッドは、関数定義を含むオブジェクトプロパティです。
財産 | 価値 |
---|---|
ファーストネーム | ジョン |
苗字 | Doe |
年 | 50 |
目の色 | 青い |
フルネーム | function(){return this.firstName + "" + this.lastName;} |
JavaScriptオブジェクトは、プロパティおよびメソッドと呼ばれる名前付き値のコンテナーです。
次の章でメソッドについて詳しく学びます。
JavaScriptオブジェクトの作成
JavaScriptを使用すると、独自のオブジェクトを定義および作成できます。
新しいオブジェクトを作成するには、さまざまな方法があります。
- オブジェクトリテラルを使用して、単一のオブジェクトを作成します。
- キーワードを使用して単一のオブジェクトを作成します
new
。 - オブジェクトコンストラクターを定義してから、構築されたタイプのオブジェクトを作成します。
- を使用してオブジェクトを作成します
Object.create()
。
オブジェクトリテラルの使用
これは、JavaScriptオブジェクトを作成する最も簡単な方法です。
オブジェクトリテラルを使用して、1つのステートメントでオブジェクトを定義および作成します。
オブジェクトリテラルは、中括弧{}内のname:valueペア(age:50など)のリストです。
次の例では、4つのプロパティを持つ新しいJavaScriptオブジェクトを作成します。
例
const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
スペースと改行は重要ではありません。オブジェクト定義は複数行にまたがることができます。
例
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
この例では、空のJavaScriptオブジェクトを作成してから、次の4つのプロパティを追加します。
例
const person = {};
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
JavaScriptキーワードの使用new
次の例では、を使用して新しいJavaScriptオブジェクトを作成し、new Object()
4つのプロパティを追加します。
例
const person = new Object();
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
上記の例はまったく同じです。
ただし、を使用する必要はありませんnew Object()
。
読みやすさ、単純さ、実行速度のために、オブジェクトリテラルメソッドを使用してください。
JavaScriptオブジェクトは可変です
オブジェクトは変更可能です。オブジェクトは、値ではなく参照によってアドレス指定されます。
人がオブジェクトである場合、次のステートメントは人のコピーを作成しません。
const x = person; // Will not create a copy of person.
オブジェクトxは人のコピーではありません。人です 。xとpersonはどちらも同じオブジェクトです。
xとpersonは同じオブジェクトであるため、xを変更するとpersonも変更されます。
例
const person = {
firstName:"John",
lastName:"Doe",
age:50, eyeColor:"blue"
}
const x = person;
x.age = 10; // Will change both x.age and person.age