Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

JS метод Array.isArray()

Опис

Метод Array.isArray() дозволяє визначити, чи є конкретне значення масивом. Метод працює незалежно від класу Array до якого він прив'язаний. Він повертає true для будь-якого об'єкта, що був створений за допомогою літералу масиву або конструктора Array. Цей метод виявився незамінним у контекстах, де конструктор Array може відрізнятись, а також у ситуаціях, де використання оператора instanceof Array може викликати проблеми.

Приклад:

const data = [1, 2, 3];
if (Array.isArray(data)) {
    console.log('Це масив!');
} else {
    console.log('Це не масив.');
}

Array.isArray() також відкидає об'єкти, які мають у своєму ланцюжку прототипів Array.prototype, але не є справжніми масивами. Останнє має велике значення, тому що такі об'єкти будуть визнані оператором instanceof Array як масиви.

Слід пам'ятати, що в JavaScript існують об'єкти, які за своєю структурою можуть нагадувати масиви, але насправді такими не є. Наприклад:

  • Об'єкти NodeList (списки вузлів, які отримуються при роботі з DOM).
  • Об'єкт arguments (спеціальний об'єкт, доступний всередині функцій для отримання переданих аргументів).

У таких випадках метод Array.isArray() поверне false, допомагаючи визначити справжні масиви.

Порада:

Завжди перевіряйте, чи існує цей метод у поточній версії JavaScript, яку використовуєте. Метод Array.isArray() був введений у стандарті ECMAScript 5, тому переконайтеся, що ви працюєте зі сумісною версією мови.

Порада:

Коли ви хочете впевнитися, що змінна є масивом, використовуйте Array.isArray() замість інших методів перевірки типу, таких як typeof або instanceof. Це запобігає можливим проблемам, особливо якщо ви маєте справу з багатомірними масивами або масивами, створеними у різних вікнах чи фреймах.

Порада:

Зауважте, що метод Array.isArray() стає особливо корисним у сучасних JavaScript-додатках, де масиви можуть походити з різних контекстів або фреймів (наприклад, в великих веб-додатках або при роботі з іншими бібліотеками і фреймворками).

Нотатка:

Не забувайте, що Array.isArray() приймає один аргумент - об'єкт, який ви перевіряєте. Він поверне true, якщо це масив, і false, якщо це не масив. Будьте уважні, щоб передати правильний об'єкт у метод для отримання очікуваного результату.

Порада:

Якщо ви працюєте з JSON-даними, які надходять з інших джерел, звертайте особливу увагу на структуру даних. Використання Array.isArray() може виявитись корисним для перевірки, чи є об'єкт масивом, перед тим як проводити з ним операції.

Синтаксис

Array.isArray(value)

Параметри

*value

Значення, яке потрібно перевірити.

Return

bool

true, якщо значення є масивом; в іншому випадку, false. Завжди повертається false, якщо значення є екземпляром TypedArray.

Переглядачі

Переглядач

4

4

5

10.5

12

Переглядач

4.4

18

4

5

Переглядач

0.10.0

1.0

Приклади


Цей приклад демонструє використання функції Array.isArray() для перевірки, чи об'єкт є масивом.

Використання Array.isArray().

// всі наступні виклики повертають 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
Array.isArray({ __proto__: Array.prototype });

При перевірці належності до типу масиву рекомендується використовувати функцію Array.isArray() замість оператора instanceof, оскільки вона працює у всіх контекстах.

// При перевірці належності до типу масиву рекомендується використовувати функцію Array.isArray() замість оператора instanceof, оскільки вона працює у всіх контекстах (реалмах).

const iframe = document.createElement("iframe");
document.body.appendChild(iframe);
const xArray = window.frames[window.frames.length - 1].Array;
const arr = new xArray(1, 2, 3); // [1, 2, 3]

// Правильна перевірка належності до масиву
Array.isArray(arr); // true
// Прототипом arr є xArray.prototype, який є
// відмінним об'єктом від Array.prototype
arr instanceof Array; // false