script:オブジェクト属性アクセス方法-Dot Notation/Bracket Notation


1.対象とは?


JavaScriptでは、オブジェクトは属性とタイプを持つ独立したオブジェクトです.
人間という個体が名前、年齢、身長、職業などの属性を持っているように、客体にも特徴を決定する属性がある.
オブジェクトの形式は次のとおりです.カッコ{}に属性名(キー):属性値(値):
let obj = {
  name : "홍길동",
  age : 20,
  height : 170cm,
  job : "정의로운 도적"
}
オブジェクトの属性は,オブジェクトに付着した変数ともいえる.
これはlet、constで宣言した変数とあまり変わりませんが、オブジェクトに属します.
では、これらのオブジェクトのプロパティにアクセスする2つの方法を見てみましょう.

2.ポイントアクセス(Dot Notation)

객체명.속성명(=key값)
簡単なポイントで属性にアクセスできるため、よく使われます.
Dot Notationでオブジェクトのプロパティにアクセスし、値を割り当ててみます.
const myMacBook = new Object();  // object를 생성하는 또다른 방식이다.
myMacBook.model = "맥북 에어 M1";
myMacBook.color = "space gray";
myMacBook.RAM = "8GB";
myMacBook.SSD = "256GB";
console.log(myMacBook)  // [object Object] { color: "space gray", model: "맥북 에어 M1", RAM: "8GB", SSD: "256GB"}
コンソールに撮影した結果から,オブジェクトの特徴は一定の順序がないことである.
これも配列との大きな違いです.
配列はindexで要素にアクセスしますが、オブジェクトは無秩序なので、異なる方法が使用されます.
DotNotationで属性値を出力しましょう.
console.log(myMacBooc.color)   // "space gray"
console.log(myMacBooc.SSD)     // "256GB"

3.Bracket Notation(角括弧の方法)

객체명["속성명"]
角カッコに属性を入力してアクセスする方法は、点ではなく属性を「」に変更するだけで同じ結果が得られます.
確かに占いより面倒なのに、なぜこの方法は単独で存在するのでしょうか.
大きく分けて2つの理由があります.

3-1)ドットマーキング法を用いる場合,属性名は一般変数のように表現される.



何の話だ...と思いましたが、そう表現するしかありませんでした.
変数名を設定するときに固定された記号があります.
 1. 数字は最初の字では使えない.
 2. 書き換えることはできません.camelcaseの形式で名前を付けます.
 3. 特殊文字は使用できません.(ただし$とは含まれません)
すなわち,ポイントマーキング法を用いて属性にアクセスしたり,属性を生成したりする場合は,この規則に違反することはできないが,ビートアクセス法を用いることができる.
myMacBook.16gbRam = "good";            // error 발생 "SyntaxError: Invalid or unexpected" token
myMacBook["16gbRam"] = "good";         // [object Object] {16gbRam: "good"}
-
myMacBook.After 10years = "none";      // error 발생 "SyntaxError: Invalid or unexpected" token
myMacBook["After 10years"] = "none";   // [object Object] {After 10years: "none"}

3−2)属性のみを新しい変数に割り当てることは可能である.


コードの例を直接見てみましょう.
let graycolor = "color"
console.log(myMacBook.graycolor)     // undefined
console.log(myMacBook[graycolor])    // "space gray"
ポイント・アクセス・メソッドでは、変数graycolorは新しいオブジェクト・プロパティとして検索しようとしますが、見つかりません.undefinedを返します.
これとは異なり、トークン・アクセス・メソッドでは、二重引用符「」を使用するかどうかによって、属性または変数にアクセスするかどうかを区別できます.
したがって、Bracket Notationを使用する場合は、二重引用符を使用するかどうかに注意する必要があります.
*, 다음과 같이 객체.속성 형식으로 변수에 할당하고 해당 변수를 콘솔로 불러오는 것은 가능하다.
let graycolor = myMacBook.color
console.log(graycolor)  // "space-gray"

4.終了


これは整理と同時に、私も混同した2つのアプローチです.使用に慣れるように、何度も練習することをお勧めします.
そしてこれは私個人の意見です.
変数名タグに基づいて属性名自体を作成します.
変数割当てもオブジェクト名です.アトリビュート名で使用すると、ポイントアクセス法が役に立つかもしれません.