Sobes.tech
Junior

Как да определим дали променливата съдържа масив?

sobes.tech AI

Отговор от AI

Най-надежният начин е да използвате Array.isArray():

// Проверява дали стойността е масив
Array.isArray(моятПроменлив);

Този метод връща true, ако променливата е масив, и false в противен случай, независимо от контекста на изпълнение или други фактори.

Други, по-малко надеждни методи включват:

  1. typeof:

    // За масиви, `typeof` ще върне 'object'
    typeof моятПроменлив === 'object';
    

    По-малко надежден, тъй като typeof връща 'object' за много типове данни, не само за масиви (обекти, null).

  2. instanceof:

    // Проверява дали обектът е инстанция на класа Array
    моятПроменлив instanceof Array;
    

    Може да бъде ненадежден при работа с iframe или прозорци с различни JavaScript контексти, където Array от един контекст се различава от друг.

  3. Проверка на конструктора:

    // Проверява дали конструкторът на променливата е Array
    моятПроменлив.constructor === Array;
    

    Може също да създаде проблеми в различни контексти на изпълнение.

Обобщена таблица:

Метод Надеждност Описание
Array.isArray() Висока Специализиран за проверка на масиви.
typeof моятПроменлив Ниска За масиви връща 'object'.
моятПроменлив instanceof Array Средна/Ниска (зависи от контекста) Проверява дали принадлежи към класа Array.
моятПроменлив.constructor === Array Средна/Ниска (зависи от контекста) Проверява свойството constructor.

Затова Array.isArray() е предпочитаният и най-надежден метод.