찾다

 >  Q&A  >  본문

javascript - js 객체 값

으아아아

이 둘의 차이점은 무엇이며, 위 상황의 이유는 무엇입니까? 도와주세요

天蓬老师天蓬老师2810일 전705

모든 응답(6)나는 대답할 것이다

  • 黄舟

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

    오류를 보고하는 것이 아닌가요? 콘솔 정보를 확인하세요.
    obj.arr[i] 이 호출은 잘못되었습니다.
    obj.arr이 존재하지 않습니다. 정의되지 않았습니다
    정의되지 않음[i] 물론 뭔가 잘못될 것입니다


    우선, obj와 arr 모두 []를 사용하여 얻을 수 있습니다.
    이 예에서 두 방법의 차이점은 다음과 같습니다.
    obj[arr[i]]는 arr[를 얻는 것입니다. i] 먼저 그런 다음 obj[]:

    에 할당합니다. 으아악

    obj.arr.[i]는 먼저 obj.arr을 얻은 다음 obj.arr을 통해 [i]를 얻는 것입니다:

    으아악 으아악

    회신하다
    0
  • 淡淡烟草味

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

    대괄호 연산자는 문자열 변수의 내용을 속성 이름으로 사용할 수 있습니다. 도트 연산자는 할 수 없습니다.

    으아악

    회신하다
    0
  • 巴扎黑

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

    하나는 객체이고 다른 하나는 완전히 다른 두 가지 데이터 구조인 배열입니다

    객체를 횡단하는 데 사용할 수 있습니다

    으아악

    나중에 오류가 보고되지 않는다고 말씀하신 이유는 for 루프의 세 가지 표현식(세미콜론으로 구분된 세 개) 때문입니다. 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 error
    제대로 이해했는지 모르겠습니다.. .

    회신하다
    0
  • 过去多啦不再A梦

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

    오류는 반드시 보고하겠습니다. 운영자 우선순위

    회신하다
    0
  • 为情所困

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

    네스팅은 안쪽에서 바깥쪽으로
    체인은 왼쪽에서 오른쪽으로
    이 문장이 맞습니다!

    회신하다
    0
  • 취소회신하다