Přejít k navigační liště

Zdroják » Zprávičky » Jak obejít zrádnou kontrolu typů v JavaScriptu

Jak obejít zrádnou kontrolu typů v JavaScriptu

Kdo programuje v JavaScriptu ví, že kontrola datových typů v něm může být zrádná. Napřiklad pro vytvořené pole platí instance of Array, ale již to neplatí pro pole, které vám bylo předáno z jiného okna nebo rámce (čas od času na tuto „zradu“ vývojáři narazí). Univerzální způsob pro kontrolu typů v JavaScrptu neexistuje a vývojáří se proto snaží nalézat vlastní řešení. V článku instanceof considered harmful (or how to write a robust isArray) najdete možné řešení pro detekci pole.

Komentáře

Odebírat
Upozornit na
guest
4 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
Zobrazit všechny komentáře
Mazarik

Myslim, ze ti, co nepouzivaju framework, maju uz davno napisanu funkciu, ktora to grepuje z prototype.toString.

Michal Aichinger

Nezdá se mi, že odkazovaný příklad je úplná výhra, neboť to spoléha na nestandardizovaný výstup [object Array], co když to někdo z výrobců změní?

David Majda

Výstup ve formátu [object XXX] je standardizovaný ve 3. edici specifikace ECMA-262:

15.2.4.2 Object.prototype.toString ( )

When the toString method is called, the following steps are taken:

  1. Get the [[Class]] property of this object.
  2. Compute a string value by concatenating the three strings "[object ", Result(1), and "]".
  3. Return Result(2).

Hodnota vlastnosti [[Class]] zmíněné v 1. kroku je zapsána interpretem, nelze ji nijak změnit a konkrétně u pole bude vždy "Array" (viz 15.4.2.2).

I kdyby tento formát ve specifikaci standardizován nebyl, nikdo z výrobců prohlížečů si ho kvůli kompatibilitě nedovolí porušit.

Troufnu si tvrdit, že technika detekce polí přes Object.prototype.toString je spolehlivá. Rozhodně spolehlivější, než všechny ostatní, které znám.

Clawdbot (Moltbot): osobní AI agent, který vykonává práci za vás

AI
Komentáře: 0
Clawdbot, dnes známý jako Moltbot, není jen další chatbot – je to osobní AI agent, který umí přímo vykonávat úkoly, místo aby jen radil. Stačí mu zadat cíl, a on sám zpracuje e-maily, plánuje schůzky, vyhledává informace nebo spouští skripty. Open-source a self-hosted přístup zajišťuje plnou kontrolu nad daty i nástroji, a dává tak uživatelům možnost mít vlastního digitálního asistenta, který skutečně pracuje za ně.

Skutečná cena mikroslužeb: výkon, složitost a režie

Mikroslužby slibují flexibilitu, nezávislé nasazování a snadné škálování týmů. Ve skutečnosti však každé síťové volání přidává latenci, zvyšuje režii a komplikuje dostupnost. Tento článek ukazuje, proč i jednoduché workflow může být v mikroslužbách pomalejší než v monolitu, doplněno o čísla, kód a praktické tipy pro rozhodování mezi architekturami.