Junior
Znáte operátor 'in' v JavaScriptu? Jaké jsou jeho nevýhody?
sobes.tech AI
Odpověď od AI
Operátor in v JavaScriptu se používá k ověření, zda vlastnost existuje v objektu nebo v jeho prototypovém řetězci. Například:
const obj = { a: 1 };
console.log('a' in obj); // true
console.log('toString' in obj); // true, protože toString je v prototypu
Nevýhody operátoru in:
- Kontroluje nejen vlastní vlastnosti objektu, ale i zděděné přes prototyp, což může vést k falešně pozitivním výsledkům.
- Nesporně rozlišuje, zda je vlastnost enumerovatelná nebo ne.
Pokud chcete zkontrolovat pouze vlastní vlastnosti objektu, je lepší použít metodu hasOwnProperty:
console.log(obj.hasOwnProperty('a')); // true
console.log(obj.hasOwnProperty('toString')); // false
Takže in je vhodný pro obecné hledání vlastností, ale je třeba být opatrný, pokud je důležité, že vlastnost patří přímo objektu.