aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/global_objects/array/isarray/index.html
blob: 8f7b88853539a2ddbd8eaee26354025b66c4c41b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
---
title: Array.isArray()
slug: Web/JavaScript/Reference/Global_Objects/Array/isArray
tags:
  - Array
  - ECMAScript5
  - JavaScript
  - Method
  - polyfill
  - Довідка
translation_of: Web/JavaScript/Reference/Global_Objects/Array/isArray
---
<div>{{JSRef}}</div>

<div>Метод <code><strong>Array.isArray()</strong></code> з'ясовує, чи є передане значення {{jsxref("Array", "масивом")}}.</div>

<div></div>

<pre class="brush: js">Array.isArray([1, 2, 3]);    // true
Array.isArray({foo: 123});   // false
Array.isArray('foobar');     // false
Array.isArray(undefined);    // false
</pre>

<h2 id="Синтакс">Синтакс</h2>

<pre class="syntaxbox">Array.isArray(<var>value</var>)</pre>

<h3 id="Параметри">Параметри</h3>

<dl>
 <dt><code>value</code></dt>
 <dd>Значення, яке має бути перевірено.</dd>
</dl>

<h3 id="Вертає">Вертає</h3>

<p>Значення <code>true</code>, якщо <code>value</code> є {{jsxref("Array", "масивом")}}; <code>false</code> — якщо ні.</p>

<h2 id="Опис">Опис</h2>

<p>Якщо передане значення є {{jsxref("Array", "масивом")}}, повертається <code>true</code>, інакше повертається <code>false</code>.</p>

<p>Більш докладні відомості дивіться у статті «<a href="http://web.mit.edu/jwalden/www/isArray.html">Як з'ясувати абсолютно точно, чи є об'єкт у JavaScript масивом</a>». При використанні екземпляра {{jsxref("TypedArray")}} завжди повертається <code>false</code>.</p>

<h2 id="Приклади">Приклади</h2>

<pre class="brush: js">//Всі наведені далі виклики вертають true:
Array.isArray([]);
Array.isArray([1]);
Array.isArray(new Array());
Array.isArray(new Array('a', 'b', 'c', 'd'));
Array.isArray(new Array(3));
// Маловідомий факт: Array.prototype сам є масивом:
Array.isArray(Array.prototype);

//Всі наведені далі виклики вертають false:
Array.isArray();
Array.isArray({});
Array.isArray(null);
Array.isArray(undefined);
Array.isArray(17);
Array.isArray('Array');
Array.isArray(true);
Array.isArray(false);
Array.isArray(new Uint8Array(32));
Array.isArray({ __proto__: Array.prototype });</pre>

<h3 id="instanceof_проти_isArray"><code>instanceof</code> проти <code>isArray</code></h3>

<p>Для перевірки, чи є об'єкт екземпляром <code>Array</code>, метод <code>Array.isArray</code> підходить краще, ніж <code>instanceof</code>, тому що він працює між фреймами (<code>iframes</code>).</p>

<pre class="brush: js">var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
xArray = window.frames[window.frames.length-1].Array;
var arr = new xArray(1,2,3); // [1,2,3]

// Коректна перевірка екземпляра Array
Array.isArray(arr);  // true
// Вважається небезпечним, бо не працює між фреймами
arr instanceof Array; // false</pre>

<h2 id="Запасний_варіант_(поліфіл)">Запасний варіант (поліфіл)</h2>

<p>Наступний код, запущений перед будь-яким іншим кодом, створить метод <code>Array.isArray()</code>, якщо він недоступний початково.</p>

<pre class="brush: js">if (!Array.isArray) {
  Array.isArray = function(arg) {
    return Object.prototype.toString.call(arg) === '[object Array]';
  };
}
</pre>

<h2 id="Специфікації">Специфікації</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Специфікація</th>
   <th scope="col">Статус</th>
   <th scope="col">Коментар</th>
  </tr>
  <tr>
   <td>{{SpecName('ES5.1', '#sec-15.4.3.2', 'Array.isArray')}}</td>
   <td>{{Spec2('ES5.1')}}</td>
   <td>Початкова виознака. Запроваджено у JavaScript 1.8.5.</td>
  </tr>
  <tr>
   <td>{{SpecName('ES6', '#sec-array.isarray', 'Array.isArray')}}</td>
   <td>{{Spec2('ES6')}}</td>
   <td></td>
  </tr>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-array.isarray', 'Array.isArray')}}</td>
   <td>{{Spec2('ESDraft')}}</td>
   <td></td>
  </tr>
 </tbody>
</table>

<h2 id="Підтримка_веб-переглядачами">Підтримка веб-переглядачами</h2>

<div class="hidden">Таблиця сумісності на цій сторінці створена зі структурованих даних. Якщо ви хочете долучитися до розробки цих даних, пропонуйте нам свої pull request до репозиторію <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div>

<p>{{Compat("javascript.builtins.Array.isArray")}}</p>

<h2 id="Див._також">Див. також</h2>

<ul>
 <li>{{jsxref("Array")}}</li>
</ul>