Přejít na hlavní obsah

Jak zkontrolovat, zda je proměnná pole v JavaScriptu: nejlepší způsoby

Při programování v JavaScriptu je často nutné zkontrolovat, zda je proměnná pole. Učení se jazykovým možnostem a hledání nejúčinnějších řešení jsou důležité dovednosti pro každého vývojáře.

V JavaScriptu existuje několik způsobů, jak zkontrolovat pole. Jeden z nich je založen na použití vestavěné metody Array.isArray(), který vrací true pokud je přenesená hodnota pole, a false jinak.

Tato metoda je nejspolehlivější a doporučuje se k použití, protože poskytuje kompatibilitu s různými verzemi JavaScriptu a eliminuje možnost přivádět jiné typy dat do pole. Příklad použití metody Array.isArray() vypadá následovně:

Zkontrolujte, zda je proměnná pole v JavaScriptu:

ZpůsobPopis
typeofPomocí příkazu typeof můžete zkontrolovat typ proměnné a ujistit se, že se rovná "object" . To však nezaručuje, že proměnná je pole. Například typeof null také vrátí "object".
Array.isArrayFunkce Array.isArray () je nejspolehlivější způsob, jak zkontrolovat, zda je proměnná pole. Vrátí true, pokud je proměnná skutečně pole, jinak-false .
instanceof ArrayPříkaz instanceof umožňuje určit příslušnost proměnné k určitému typu, v tomto případě poli. Ale pokud bylo pole vytvořeno v jiném okně nebo rámu, tato metoda nebude fungovat.
Array.prototype.isArrayJedná se o vlastní vlastnost pro pole, která byla přidána do SPECIFIKACE ECMAScript 5. Tato vlastnost existuje pouze pro pole a vrací true . Tato metoda je podporována v moderních prohlížečích.

Použití kterékoli z těchto metod závisí na požadavcích vašeho projektu a na tom, jak důležitá je pro vás spolehlivost kontroly. Je důležité si uvědomit, že některé z těchto metod mohou být zastaralé nebo nemusí být podporovány v některých verzích JavaScriptu.

Definice typu proměnné v JavaScriptu

V JavaScriptu existuje několik způsobů, jak určit typ proměnné. To může být užitečné pro upřesnění požadavků na konkrétní typ dat nebo pro ověření podmínek před provedením konkrétního kódu.

Jedním z jednoduchých způsobů, jak určit typ proměnné, je použití příkazu typeof . Vrátí řádek obsahující informace o typu proměnné.

let x = 10;console.log(typeof x); // "number"let y = "Hello";console.log(typeof y); // "string"let z = true;console.log(typeof z); // "boolean"

Příkaz typeof lze použít k určení datových typů, jako je číslo, řádek, logická hodnota, objekt, funkce, symbol a undefined.

Kromě toho existuje příkaz instanceof , který vám umožňuje zkontrolovat, zda je proměnná instance konkrétní třídy nebo konstruktoru.

let arr = [1, 2, 3];console.log(arr instanceof Array); // truelet obj = <>;console.log(obj instanceof Object); // truelet date = new Date();console.log(date instanceof Date); // true

Jak je vidět z příkladů, příkaz instanceof lze použít k určení datových typů, jako je pole, objekt a datum.

Lze také použít funkci Array.isArray (), která kontroluje, zda je proměnná pole. Vrátí true, pokud je proměnná pole , a false, pokud ne.

let arr = [1, 2, 3];console.log(Array.isArray(arr)); // truelet str = "Hello";console.log(Array.isArray(str)); // false

V tomto příkladu je proměnná arr pole, takže funkce Array.isArray () vrací true . Zároveň je proměnná str řetězcem, takže funkce vrací false .

Existuje tedy několik způsobů, jak určit typ proměnné v JavaScriptu , včetně použití příkazu typeof, příkazu instanceof a funkce Array.isArray() . Výběr metody závisí na požadované přesnosti a typu dat, která je třeba zkontrolovat.

Použití operátora typeof k ověření

Pokud je proměnná pole, operátor typeof vrátí "object". Tato metoda však není ideální, protože nedokáže rozlišit pole od jiného objektu.

Pro spolehlivější kontrolu lze před použitím příkazu typeof nejprve zkontrolovat, zda je proměnná objektem pomocí metody Array.isArray(). Tato metoda vrátí hodnotu true, pokud je proměnná skutečně pole.

Níže je uveden příklad kódu, který ukazuje použití příkazu typeof ke kontrole:

let arr = [1, 2, 3];if (typeof arr === "object" && Array.isArray(arr)) else

I když tato metoda není zcela spolehlivá, je jedním z nejběžnějších způsobů, jak zkontrolovat, zda je proměnná pole v JavaScriptu.

Použití metody Array.isArray()

Metoda Array.isArray() umožňuje zkontrolovat, zda je předaný argument pole. Vrací logickou hodnotu, která se rovná true pokud je předložený argument masivní, a false pokud tomu tak není.

Příklad použití metody Array.isArray():

let array = [1, 2, 3]; let is_array = Array.isArray(array); if (is_array) < console.log("Переменная является массивом"); >else

Metoda Array.isArray() je to spolehlivý a přímý způsob, jak zkontrolovat, zda je proměnná pole. Bude fungovat ve všech moderních prohlížečích a bude kompatibilní se staršími verzemi JavaScriptu.

Kontrola vlastnosti length

Chcete-li zkontrolovat, zda je proměnná pole pomocí vlastnosti length, stačí napsat takový kód:

if (typeof myArray.length !== 'undefined')

// proměnná je pole

V tomto kódu ověřujeme, zda má proměnná myarray vlastnost length, a pokud ano, považujeme ji za pole.

Při používání tohoto způsobu kontroly je však třeba být opatrní. Pokud je například proměnná myArray oznámena, ale není inicializována, bude mít hodnotu undefined a kontrola vlastnosti length vrátí false.

Před kontrolou vlastnosti length se proto doporučuje nejprve zkontrolovat, zda je proměnná deklarovaná a zda neobsahuje hodnotu undefined:

if (typeof myArray !== 'undefined' && typeof myArray.length !== 'undefined')

// proměnná je deklarované pole

Nyní můžeme spolehlivěji zkontrolovat, zda je proměnná myArray deklarována a zda je pole.

Tento způsob kontroly funguje spolehlivě ve většině případů, ale v některých zvláštních případech, kdy se zabýváme objektem, který může mít vlastnost length, ale není to pole, může poskytnout falešný výsledek.

Pro přesnější kontrolu byste proto měli použít jiné způsoby, jako je použití metod Array.isArray () nebo Array.from().

Použití nástroje array a instanceof

Návrhář Array má vlastnost: pokud jej vyvoláte bez argumentů, vytvoří prázdné pole.

var arr = new Array();

if (arr instanceof Array)

console.log ("arr je pole");

console.log ("arr - ne pole");

V tomto případě, pokud je proměnná arr pole, Podmínka uvnitř if vrátí true a zobrazí se Zpráva "arr je pole". V opačném případě se zobrazí zpráva "arr není pole".

Použití konstruktoru Array a příkazu instanceof je pohodlné, protože testuje nejen samotnou proměnnou, ale také její prototypovou dědičnost. To umožňuje určit, zda je proměnná pole, i když byla vytvořena jiným způsobem, například pomocí literárního pole.

Je však třeba si uvědomit, že příkaz instanceof má některé vlastnosti, zejména v případě více dědičnosti. Kontroluje, zda objekt patří do uvedené třídy, nebo k jeho potomkům. Pokud je tedy proměnná instancí nějaké třídy, která také zdědí Array, instanceof také vrátí true.

Kromě toho lze pomocí array Creator Vytvořit pole správné délky:

var arr = new Array (10); / / vytváří pole o délce 10

console.log(arr); // [empty × 10]

Tento přístup může být užitečný, pokud je nutné předem vytvořit pole s pevným počtem prázdných prvků, které budou později vyplněny.

Srovnání prototypu proměnné s prototypem Array

Prototypy v JavaScriptu umožňují určit, ke kterému typu dat objekt patří. V případě masivů je jejich prototypem Array.prototype.

Chcete-li zkontrolovat, zda je proměnná pole, můžete použít příkaz instanceof a porovnat její prototyp s prototypem Array:

if (variable instanceof Array.prototype) else

Operátor instanceof zkontroluje, zda proměnná patří zadanému prototypu. Pokud je proměnná pole, operátor vrátí true, jinak-false.

Tato metoda je spolehlivější, protože bere v úvahu dědičnost. Pokud například pole zdědí jiný objekt, operátor instanceof bude stále vracet true, protože Array.prototype je prototypem pro všechna pole.

Za pozornost však stojí, že tento způsob není vhodný pro kontrolu polí v jiných oknech nebo rámech (cross-window nebo cross-frame).