Sobes.tech
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.