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.