JavaScriptユニバースパート2


最後のポストの要約


シリーズの最初の部分で、我々は見ました.
記憶すべき点
  • は、JSで値の9種類の合計があります
    プリミティブ値、オブジェクト&関数.
  • 原始的な値には、定義されていない、NULL、数字、文字列が含まれます.
    Bigintsとシンボル.
  • 上記のタイプ以外のすべては、オブジェクトです.例えば、
    配列、日付、正規表現がオブジェクトの下に来る.
  • 原始的な値は変更不可能です.
  • オブジェクトと関数は変更可能です.
  • 変数は、それからどんな値も保持することができる値を表しなければなりません
    上記の型.
  • このポストでは、我々はオブジェクトに集中するつもりです.

    オブジェクト入門


    配列、日付、正規表現、および他の非原始値はオブジェクトの下に来ます.
    console.log(typeof({})); // "object"
    console.log(typeof([])); // "object"
    console.log(typeof(new Date())); // "object"
    console.log(typeof(Math)); // "object"
    
    オブジェクトが非原始的な値であることを知っています.つまり、既定のオブジェクトは変更可能です.
    オブジェクトを作成するには、{ }オブジェクトリテラルを使用する必要があります.
    let newObj = {};
    let anotherObj = {};
    console.log(typeof(newObj),typeof(anotherObj)); // object object
    
    上記のコードでは、newobjとanotherobjはオブジェクトです.
    上記2つの変数の図式表現は、下の図のようになります.

    上記の図から、2つの変数のそれぞれが新しいオブジェクト値を持つと結論できます.

    オブジェクトのプロパティ


    オブジェクトは基本的にキー値ペアであるプロパティを含みます.
    let objectWithProperty = {
    propertyOne: "This is property one",
    propertyTwo: "This is property two"
    }
    
    PropertyOneとPropertyTwoをキーと呼びます.“これはプロパティ1”と“これはプロパティ2”と呼ばれる値です.値は文字列型で値を持っていますが、値のフィールドに文字通りの値を格納することができます.
    オブジェクトのプロパティにアクセスするには、ドット()表記またはブラケット([])表記.
    let objectWithProperties = {
      propertyOne: "This is property one",
      propertyTwo: "This is property two"
    }
    console.log(objectWithProperties.propertyOne); // "This is property one" using dot notation
    console.log(objectWithProperties[propertyTwo]); // "This is property two" using bracket notation
    
    上記のコードの概略図は、このようになります.

    プロパティに名前があります.単一のオブジェクトに同じ名前の2つのプロパティを持つことはできません.
    例えば、オブジェクトにnameというプロパティがあるとしましょう.同じオブジェクトに同じプロパティ名' name 'を持つ別のプロパティを宣言できません.
    それをしようとすると、JavaScriptは最後のキー値ペアを取り、同じ名前の前のキー値ペアを無視します.
    let person = {
      name: "Anne",
      age: 32,
      name: "Hathway"
    }
    console.log(person); // {age: 32, name: "Hathway"} 1st name property is neglected
    console.log(person.name); // "Hathway" not "Anne"
    
    上記のコードスニペットでは、最初のNameプロパティを無視し、最後のNameプロパティを取得します.
    プロパティ名は常にJavaScriptで大文字小文字を区別します.たとえば、名前と名前はJavaScriptの視点から2つの完全に異なるプロパティになります.
    事前にプロパティ名を知らないのであれば、文字列の値としてコードを持っている場合は、[]ブラケット表記を使用してオブジェクトから読み込みます.

    どのようなプロパティが不足していますか?


    オブジェクト内で定義されていないプロパティにアクセスしようとすると、エラーをスローしないため、値として未定義の値が返されます.
    例:
    let person = {
      name: "Anne Hathway"
    };
    console.log(person.age); // undefined
    
    JavaScriptはオブジェクトを扱う際に特定の手順に従います.以下のようになります:
  • はドット(.)の前の部分の値を示します.
  • その値がNULLまたは未定義の場合、すぐにエラーをスローします.
  • は、その名前のプロパティが我々のオブジェクトに存在するかどうかを確認します.
  • が存在する場合、このプロパティが指す値を指定します.
  • が存在しない場合は、未定義値で答えます.
  • 以下のコードスニペットを考えてみましょう.
    let person = {
     name: "Anne Hathway",
    };
    console.log(person.address.city); // ?
    
    上記のコードスニペットの出力は何ですか?
    あなたが答えが誤りであると思うならば、あなたは正しいです.
    でもどうやって?ドット演算子の左側がNULLまたは未定義の場合、エラーをスローします.
    私はJavaScriptユニバースでオブジェクトについての十分な詳細を与えたことを願っています.
    あなたがオブジェクトについてもっと知りたいならば、MDN docsを読んでください.
    閉じるこの動画はお気に入りから削除されています.
    私の次のポストですべてを参照してください.良い一日を!