>웹 프론트엔드 >JS 튜토리얼 >[[]][ []] [ []] JavaScript에서 문자열 '10'이 어떻게 발생합니까?

[[]][ []] [ []] JavaScript에서 문자열 '10'이 어떻게 발생합니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-13 13:45:021025검색

How Does   [[]][ []] [ []] Result in the String

[[]][ []] [ []]는 어떻게 문자열 "10"을 생성합니까?

JavaScript에서는 당황스러운 표현식 [[]][ []] [ []]에는 문자열 "10"을 반환하는 다소 예상치 못한 결과가 있습니다. 이 이상한 행동 뒤에 숨은 미스터리를 풀어보겠습니다.

1. 식 분해:

식을 단계별로 분해하면 다음과 같이 분해할 수 있습니다.

++[[]][+[]]
+
[+[]]

2. 하위 부분 해석:

  • []: 이 표현식은 빈 배열 []을 0으로 평가되는 숫자로 강제 변환합니다.
  • [[]][ []] : 내부 배열 []의 첫 번째 요소를 검색합니다. 이는 빈 배열 자체입니다.
  • [[]][ []]: 참조된 배열([] = 0)에 해당하는 숫자를 1씩 증가시킵니다. , 결과는 1입니다.
  • []: 이전과 동일하게 빈 배열 []을 숫자 0으로 변환합니다.

3. 단순화 및 연결:

이제 표현식을 더욱 단순화할 수 있습니다.

1
+
0

JavaScript의 연결 규칙은 다양한 유형의 피연산자가 있는 연산자를 만날 때 적용됩니다. 피연산자 중 하나는 숫자(1)이고 다른 하나는 배열(0)이므로 배열은 문자열("0")로 강제 변환됩니다.

4. 문자열 연결:

추가 결과는 문자열 연결입니다.

"1" + "0" === "10"

5. 정리:

이렇게 해서 [[]][ []] [ []]가 강제와 연결을 능숙하게 조작하여 "10"이라는 수수께끼의 결과를 만들어내는 숨겨진 경로를 발견합니다.

위 내용은 [[]][ []] [ []] JavaScript에서 문자열 '10'이 어떻게 발생합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.