TIL 72|オブジェクト1(オブジェクト定義、オブジェクト変更)
21730 ワード
オブジェクトの定義、Propertyとメソッドの定義、Propertyにアクセスする2つのメソッド、およびオブジェクト値の変更(削除、追加、更新)
JSはオブジェクトベースのプログラミング言語であり、JavaScriptを構成するほとんどの「すべて」はオブジェクト である.オブジェクトタイプは、複数種類の値(元の値または他のオブジェクト)からなる1単位の複合材料構造 である.元の値は変更できませんが、オブジェクトタイプの値、すなわちオブジェクトの変更可能な値 です.オブジェクトは0以上のpropertyからなる集合であり、propertyはキーと値からなる Property:オブジェクトの状態を表す値 メソッド:Property(ステータスデータ)を参照および操作する操作
オブジェクト文字から を生成する.オブジェクトジェネレータ関数 ジェネレータ関数 Object.createメソッド クラス(ES 6) オブジェクトはpropertyの集合であり、propertyはキーと値から構成されます. Propertyキー:空の文字列を含むすべての文字列またはシンボル値 パーセント値:JSで使用可能なすべての値 文字列または文字列で計算できる式を使用してpropertyキーを動的に生成することもできます.この場合、式をpropertyキーとして使用します([...]) で縛るべきです Propertyキーで文字列またはシンボル値以外の値を使用すると、暗黙的なタイプで文字列 に変換される.既存のpropertyキーを繰り返し宣言すると、後に宣言されたpropertyが最初に宣言したpropertyが上書きされます. JSのすべての使用可能な値は、property値 として使用できます. propertyの値が関数である場合、一般関数を区別するためのメソッド(method)と呼ばれる.メソッドとは、オブジェクトにバンドルされた関数です.
句点表記法 角括弧記号(括弧記号) のかっこ表現を使用する場合、カッコPropertyアクセス演算子内で指定するPropertyキーは、引用符で囲まれた文字列(例1) である必要があります.アクセス演算子の内部に指定するpropertyキーを使用して変数を指定する場合は、引用符(例2) を使用せずにカッコタグを使用する必要があります. Propertyキーが識別子命名規則に従わない名前である場合、Propertyにはカッコ記号のみでアクセスできます.propertyキーが数字の場合、引用符(例3) を省略することができる
オブジェクトのオブジェクトへのアクセス:グローブボックスの値の出力
番組を5つの記号で接続したり、カッコで接続したり、混ぜて接続したりすることができます.
(四角カッコを使用する必要がある場合は、ルールを守ってください)
オブジェクトの配列へのアクセス:pineを出力
配列内の要素にアクセスするときにカッコとインデックス番号を使用
既存のpropertyに値を割り当てると、property値 が更新される.が存在しないPropertyに値を割り当てると、動的にPropertyが作成され、Propertyが追加され、Property値 が割り当てられます. delete演算子は、オブジェクトのpropertyを削除します.この場合、delete演算子の被演算子はproperty値にアクセスできる式でなければなりません.存在しない番組を削除すると、 は間違いなく無視される.
オブジェクト
オブジェクトを作成するには、さまざまな方法があります。
propertyって何?
let person = {
name: 'Lee',
age: 20
}
let obj = {};
let key = 'hello'
obj[key] = 'world' // == {[key]: 'world'}
console.log(obj); // {hello: "world"}
let foo = {
0: 1,
1: 2,
2: 3
}
console.log(foo); // {0:1, 1:2, 2:3}
let foo = {
name: 'Lee',
name: 'Kim'
}
console.log(foo); // {name: "Kim"}
反復法とは?
let circle = {
radius: 5,
getDiameter: function() { // <-- 메서드이다
return 2 * this.radius; // <---- this는 circle을 가리킨다
}
}
console.log(circle.getDiameter()); // 10
オブジェクトの変更
アクセス発プロパティ(2つの方法)
let person = {
name: 'Lee'
};
console.log(person.name); // Lee
-예시1-
let person = {
name: 'Lee'
};
console.log(person['name']); // Lee
console.log(person[name]); // 참조에러
-예시2-
let mySelf = {
cats : ['냥순','냥돌'],
myKey : 'Hello World'
}
let myKey = "cats"
console.log(mySelf) // {cats: ['냥순','냥돌'], myKey: 'Hello World'}
console.log(mySelf["cats"]) // ['냥순','냥돌']
console.log(mySelf[myKey]) // ['냥순','냥돌']
>> == console.log(mySelf["cats"])
>> !== console.log(mySelf.myKey) // "Hello World"
-예시3-
let people = {
'last-name': 'Lee',
1: 10
}
console.log(people.last-name) //NaN
console.log(people.'last-name') // 문법에러
console.log(people[last-name]) // 참조에러
console.log(people['last-name']) // "Lee"
console.log(people.1) // 문법에러
console.log(people.'1') // 문법에러
console.log(people[1]) // 10
console.log(people['1']) // 10
番組を5つの記号で接続したり、カッコで接続したり、混ぜて接続したりすることができます.
(四角カッコを使用する必要がある場合は、ルールを守ってください)
function accessObject() {
let myStorage = {
"car": {
"inside": {
"glove box": "maps",
"passenger seat": "crumbs"
},
"outside": {
"trunk": "jack"
}
}
};
let gloveBoxContents = myStorage.car.inside['glove box']
return gloveBoxContents;
}
console.log(accessObject()) // "maps"
配列内の要素にアクセスするときにカッコとインデックス番号を使用
function accessArray() {
let myPlants = [
{
type: "flowers",
list: [
"rose",
"tulip",
"dandelion"
]
},
{
type: "trees",
list: [
"fir",
"pine",
"birch"
]
}
];
let foundValue = myPlants[1].list[1]
return foundValue;
}
console.log(accessArray()) // "pine"
価格の更新
let person = {
name: 'Lee'
}
person.name = 'Kim'
console.log(person) // {name: 'Kim'}
すべて動的に生成
let people = {
name: 'Lee'
}
people.age = 20
console.log(people) // {name: 'Lee', age: 20}
すべてのプロパティを削除
let person = {
name: 'Lee'
}
person.age = 20;
console.log(person) // {age: 20, name: 'Lee'}
delete person.age;
console.log(person) // {name: 'Lee'}
delete person.address;
console.log(person) // {name: 'Lee'}
Reference
この問題について(TIL 72|オブジェクト1(オブジェクト定義、オブジェクト変更)), 我々は、より多くの情報をここで見つけました https://velog.io/@yeonbee/TIL-72-객체1객체-정의-객체-변경テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol