Computer >> Máy Tính >  >> Lập trình >> Javascript

Sự khác biệt giữa phương thức instanceof () và Array.isArray () trong JavaScript là gì?


Array.isArray () phương thức là phổ biến, nó có thể hoạt động bất kỳ trong khi instanceof toán tử không phải là phổ biến, nó không thể hoạt động trong môi trường mới ..

cú pháp-1

Array.isArray(array);

cú pháp-2

array instance of Array;

Trong ví dụ sau, nơi không có môi trường mới nào được tạo, cả Array.isArrar () instanceof đã tạo ra cùng một sản lượng.

Ví dụ

<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>

Đầu ra

true
true
false
false

Bây giờ chúng ta hãy thử tạo môi trường mới hoặc một khung mới để kiểm tra xem instanceof nhà điều hành có hoạt động ở đó hay không.

Trong ví dụ sau, một khung mới được tạo bằng cách sử dụng ' iframe '(thuộc tính khung tạo ra một đối tượng giống mảng). Sau đó, một đối tượng giống mảng được tạo trong khung mới đó và được chuyển qua cả hai hàm. Kể từ instanceof không phải là phổ quát nên mảng được đóng khung không phải là mảng thực và được trả về false dưới dạng đầu ra trong khi Array.isArray () trả về true như được hiển thị trong đầu ra.

Ví dụ

<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>

Đầu ra

true
true
true
false