>

http://jsfiddle.net/7yfpc1nL/3/

const arr = ['a', 'b'];
const r = arr[[
  [0]
]];
console.log(r);

자바 스크립트가 [[0]]을 (를) 0으로 강제 변환합니까? 여기서 무슨 마법이 일어나고 있습니까?


  • 답변 # 1

    예, [] 를 사용하여 객체의 속성에 액세스 할 때  연산자, JavaScript는 인수를 문자열로 강제 변환하고 문자열 형식은 [[0]]  그냥 0 입니다 따라서 0 번째 요소에 액세스하는 로터리 방식입니다.

    설명하기 :

    const arr = ['a', 'b']
    const idx = String([[0]]) // => "0"
    arr[idx] // => "a"
    
    

    인수의 문자열 형식이 다음과 같이 사용되는지 확인할 수 있습니다 :

    const obj = {
      toString: function() {
        console.log('OK: called obj.toString()')
        return 1
      }
    }
    arr[obj] // => "b"
    // OK: called obj.toString()
    
    

관련 자료

  • 이전 php - URL에 특정 디렉토리가 포함 된 경우 URL의 끝을 반환
  • 다음 css - 키 프레임을 뒤집는 방법?