[[]][ []] [ []]의 반환 값에 대한 미스터리 밝히기
JavaScript 영역에서는 수수께끼 같은 표현 [[]][ []] [ []]는 무의미해 보이는 반환 값인 "10"으로 인해 많은 사람들을 당황하게 합니다. JavaScript 평가 프로세스의 깊이를 탐구하면서 우리는 이 퍼즐을 해독하기 위한 여정을 시작합니다.
먼저 표현식을 분석해 보겠습니다.
++[[]][+[]] + [+[]]
[[]] 확장 [ []]
JavaScript에서 표현식 []은 0으로 평가됩니다. 그 이유는 피연산자를 숫자로 변환하려고 시도하고 빈 배열이 문자열로 강제 변환된 후 숫자로 변환되어 0이 되기 때문입니다.
[]를 해당 값으로 대체하면 다음과 같은 결과를 얻습니다.
++[[]][0] + [+[]]
[[]][0] 평가
연산자 피연산자를 1만큼 증가시키므로 [[]][0]은 ([[]][0]) 1과 같습니다. [[]][0]은 빈 배열의 첫 번째 요소를 검색하므로 또 다른 빈 배열을 반환합니다. . 따라서 ([[]][0])은 []와 동일하며 이는 0을 산출한다는 것을 알고 있습니다.
나머지 표현식 단순화
더 단순화하면 다음을 얻습니다. :
1 + [+[]]
JavaScript의 강제 마법
배열과 숫자의 추가를 처리할 때 JavaScript의 강제 규칙이 적용됩니다. 먼저 배열이 문자열("0")로 강제 변환된 다음 숫자가 문자열("1")로 변환됩니다. 문자열 연결은 최종 결과로 나타납니다.
console.log("1" + "0") // "10"
추가 컨텍스트
위 내용은 JavaScript에서 [[]][ []] [ []]가 '10'을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!