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