Sobes.tech
Junior

Poznáte operátor 'in' v JavaScripte? Aké sú jeho nevýhody?

sobes.tech AI

Odpoveď od AI

Operátor in v JavaScripte sa používa na kontrolu, či vlastnosť existuje v objekte alebo v jeho prototypovom reťazci. Napríklad:

const obj = { a: 1 };
console.log('a' in obj); // true
console.log('toString' in obj); // true, pretože toString je v prototypu

Nevýhody operátora in:

  • Kontroluje nielen vlastnosti vlastné objektu, ale aj zdedené cez prototyp, čo môže viesť k falošne pozitívnym výsledkom.
  • Neodlišuje, či je vlastnosť enumerovateľná alebo nie.

Ak chcete skontrolovať iba vlastnosti vlastné objektu, je lepšie použiť metódu hasOwnProperty:

console.log(obj.hasOwnProperty('a')); // true
console.log(obj.hasOwnProperty('toString')); // false

Takže in je vhodný na všeobecné vyhľadávanie vlastností, ale vyžaduje opatrnosť, ak je dôležité, že vlastnosť patrí priamo objektu.