Array.isArray() 방법은 보편적이며 instanceof 연산자는 보편적이지 않으며 새로운 환경에서는 작동하지 않습니다.
구문-1
Array.isArray(array);
구문-2
array instance of Array;
다음 예에서는 새 환경이 생성되지 않은 경우 Array.isArrar() 및 인스턴스 동일한 출력을 생성했습니다.
예시
<html> <body> <script> var a = [1,2,3,4,5]; document.write(Array.isArray(a)); document.write("</br>"); document.write((a instanceof Array)); document.write("</br>"); var b = {} document.write(Array.isArray(b)); document.write("</br>"); document.write((b instanceof Array)); </script> </body> </html>
출력
true true false false
이제 새로운 환경을 만들어 보겠습니다. 또는 instanceof 여부를 확인하기 위해 새 프레임 교환원은 그곳에서 일을 합니다.
다음 예에서는 'iframe을 사용하여 새 프레임을 만듭니다. '(객체와 같은 배열을 생성하는 프레임 속성). 나중에 객체와 같은 배열이 새 프레임에 만들어지고 두 함수를 통해 전달됩니다. 인스턴스 이후 프레임 배열이 실제 배열이 아니고 거짓 을 반환해야 하므로 보편적이지 않습니다. 출력으로 반면 Array.isArray() 참 반환 출력에 표시된 대로.
예시
<html> <body> <script> var iframeE = document.createElement('iframe'); iframeE.style.display = "none"; document.body.appendChild(iframeE); iframeArray = window.frames[window.frames.length - 1].Array; var a = new Array(1,2,3,"hi",4, "hello"); var b = new iframeArray(1,2,3,4); document.write(Array.isArray(a)); document.write("</br>"); document.write(a instanceof Array); document.write("</br>"); document.write(Array.isArray(b)); document.write("</br>"); document.write(b instanceof Array); </script> </body> </html>
출력
true true true false