検索

ホームページ  >  に質問  >  本文

javascript - jsオブジェクトの値

リーリー

これら 2 つの違いは何ですか?また、上記の状況の理由は何ですか?それを理解するのを手伝ってください

天蓬老师天蓬老师2810日前706

全員に返信(6)返信します

  • 黄舟

    黄舟2017-05-19 10:35:49

    エラーを報告していませんか? コンソール情報を確認してください
    obj.arr[i] この呼び出しは間違っています
    obj.arr は存在しません、それは未定義と同等です
    unknown[i] 間違いなくエラーが発生します


    まず第一に、obj と arr はどちらも [] メソッドを使用して値を取得できます:
    この例の 2 つのメソッドの違いは次のとおりです:
    obj[arr[i]] は最初に arr[i] を取得し、それを次の値に割り当てます。オブジェクト[]:

    リーリー

    obj.arr.[i] は、最初に obj.arr を取得し、次に obj.arr:

    を通じて [i] を取得します。 リーリー リーリー

    返事
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-19 10:35:49

    角かっこ演算子は、文字列変数の内容を属性名として使用できます。ドット演算子はできません。

    リーリー

    返事
    0
  • 巴扎黑

    巴扎黑2017-05-19 10:35:49

    1 つはオブジェクト、もう 1 つは配列であり、これらは 2 つの完全に異なるデータ構造です

    オブジェクトのトラバースが使用可能です

    リーリー

    後でエラーが報告されないと言った理由については、for ループの 3 つの式 (セミコロンで区切られた 3 つ) が原因で、obj.length が未定義で false であるため、ループが開始されません。 、obj を与えることもできます。オブジェクトに長さを追加してみてください。サイクルが始まります

    返事
    0
  • 阿神

    阿神2017-05-19 10:35:49

    友人、エラーが報告されました...

    理由は次のとおりです:
    obj[] を使用して、受信文字列を属性名に変換します。つまり:
    obj['name']==obj.name が返されます。 true
    そして、obj.'name' のドット構文は obj.name に自動的に変換されません。つまり、
    obj.'name'==obj.name エラー
    正しく理解できているかわかりません。 .

    返事
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-19 10:35:49

    オペレーター優先で間違いなくエラーが報告されます

    返事
    0
  • 为情所困

    为情所困2017-05-19 10:35:49

    入れ子は内側から外側へ
    チェーンは左から右へ
    この文は正しいです!

    返事
    0
  • キャンセル返事