コアJavaScript(オブジェクト:基本)


オブジェクト


8種類のデータ型のうち7種類は「オリジナル型」と呼ばれる1つのデータしか含まれません.オブジェクト型はオリジナル型とは異なり、複数のデータを同時に含むことができます.
  • {..} カッコで作成できます
    -key:value形式のproperty.
  • key含む文字
  • valueデータ型の使用を許可
  • オブジェクトを作成します。

    let user = new Object(); // 객체 생성자 문법
    let user = {}; // 객체 리터럴 문법 

    1.文字と番組

  • 大かっこ{...}内部には、「キー:値」として構成されたProperty
  • が含まれています.
    let user = {     //객체 리터럴 문법
      name : 'John', // 왼쪽에는 키 key , 오른쪽에는 값 value
      age : 30
    }
  • ドット記号
  • user.name	// John
    user.key	// 30
    Property値を読み込むこともできます
  • delete演算子
  • delete user.age;
    delete演算子を使用してPropertyを削除することもできます
  • 引用符
  • "like birds": true 
    複数の単語を組み合わせて名前を付ける場合は、引用符を使用する必要があります.
  • 最後の輪郭端点はカンマで終わる
  • let user = {
    	name: "john",
        age: 30,
    }
    テール
    これにより、Propertyの追加、削除、および移動が容易になります.

    2.括弧表記法


    いくつかの単語をpropertyキーに組み合わせる場合は、前述したようにします.ポイントシンボルを使用してProperty値を読み込めません
    逆に、この角カッコ記号を使用できます.
    let user = {};
    user.["likes birds"] = true
    
    let key = "name";
    user[key]
    変数keyユーザーが入力した値は変更される可能性があります.たとえば、値が変更される可能性があります.ポイント記号を使用して結果を確認することはできません.角カッコ記号を使用する必要があります.

    3.算出された価格


    オブジェクトを作成するときに、オブジェクトテキストライブラリのPropertyキーがかっこで囲まれている場合は、計算されたProperty(computed property)と呼ばれます.
    let fruit = prompt("어떤 과일을 구매하시겠습니까?", "apple");
    let bag = {
    	[fruit]: 5,
    };
    [fruit]は、変数fruitからproperty名を取得することを意味します.
    let fruit = prompt("어떤 과일을 구매하시겠습니까?", "apple");
    let bag = {};
    
    bag[fruit] =5;
    let fruit = 'apple';
    let bag = {
    	[fruit + 'computers']: 5 // bag.applecomputer = 5
    }
    -かっこタグは、Propertyの名前と値の制限を排除するため、ポイントタグよりも優れていますが、作成が困難な点があります.
    -property名が決定された場合、ポイントマーキング法の使用中に複雑な状況が発生した場合、通常は角カッコマーキングで置き換えられます.

    3.ショートカット割引


    常に既存の変数からProperty値を取得および使用
    function makeUser(name, age) {
    	return {
         name: name;
          age: age;
        }
    }
    let user = makeUser("John", 30);
    上記の例のプロパティの名前と値は変数の名前と同じです.
    Property値ショートカット(property value shorth)を使用できます.
    let user = {
    	name,
      	age,
    }

    4.プロパティ名の制限

  • 変数名には、for、let、returnなどの予約語を含めることはできません.
    オブジェクトプロパティにこれらの制限はありません
  • let obj = {
    	for: 1
      	let: 2
      	return: 3
    }
  • 文字型または素子型に属さない値を自動的に文字列
  • に変換
    let obj = {
    	0: "test" // "0":"test"
    }

    5.演算子「in」を使用して、Propertyが存在するかどうかを確認

  • 存在しないPropertyにアクセスしようとした場合、エラーは発生せずにundefined
  • に戻ります.
    let user = {};
    user.noSuchProperty === undefined ; // true
  • undefinedに加えて、演算子inを使用してpropertyが存在するかどうかを確認することもできます
  • "key" in obj
    in左側にはproperty名が必要です.property名は通常「包囲」文字列です.

    6. 'for...複文


    オブジェクトのすべてのキーの前に(;)重複文とは全く違います!
    for (key in object) {
    	//각 프로퍼티 키를 이용하여 본문을 실행
    }
    let user = {
    	name: "John",
      	age: 30,
      	isAdmin: true
    }
    
    for (let key in user) {
    	alert(key);			//name, age, isAdmin
    	alert(user[key]);	//John, 30, true
    }
    変数let keyを繰り返します!

    7.対象ソート方式


    オブジェクトの整数値は自動的にソートされ、オブジェクトに追加された順序でソートされます.
    整数プロパティ:変形せずに整数内を移動できる文字列
    let codes = {
    	"49": "독일":
      	"41": "스위스":
      	"44": "영국":
    };
    順番に出力する場合は、数値の前に+を付ける必要があります.

    課題

  • 対象こんにちは
  • let user = {
    	name = John,
      	surname = Smith,
    }
    user.name. = Pete
    delete user.name
  • 検査対象が空であるかどうか
  • function isEmpty(obj) {
    	for (let key in obj) {
        	return false;
        }
     return true;
    }
  • 不変対象?
  • const user = {
    	name = "John"
    }
    user.name = "Pete"
    へんか
  • Property合計
  • let salaries = {
    	John: 100,
      	Ann: 160,
      	Pete: 130,
    }
    function sum(obj) {
      let sum = 0
    	for (key in salaries) {
        	sum += key[salaries]
        }
      return sum
    }
  • property値倍加
  • let menu = {
    	width: 200,
      	heigth: 300,
      	title: "My menu",
    };
    
    multyplyNumeric(menu);
    
    menu = {
    	width: 400,
      	height: 600,
      	title: "My menu"
    };
    function multypyNumeric(obj) {
    	for (key in obj) {
        	if (typoeof obj[key] == 'number') {
            	obj[key] *= 2;
            }
        }
    }
    typeof:Property値が数値かどうかを決定できます