Sobes.tech
Junior

Czy znasz operator 'in' w JavaScript? Jakie są jego wady?

sobes.tech AI

Odpowiedź od AI

Operator in w JavaScript służy do sprawdzania, czy dana właściwość istnieje w obiekcie lub w jego łańcuchu prototypów. Na przykład:

const obj = { a: 1 };
console.log('a' in obj); // true
console.log('toString' in obj); // true, ponieważ toString jest w prototypie

Wady operatora in:

  • Sprawdza nie tylko własne właściwości obiektu, ale także odziedziczone przez prototyp, co może prowadzić do fałszywych wyników.
  • Nie rozróżnia, czy właściwość jest enumerowalna, czy nie.

Jeśli chcesz sprawdzić tylko własne właściwości obiektu, lepiej użyć metody hasOwnProperty:

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

W związku z tym, in jest przydatny do ogólnego wyszukiwania właściwości, ale wymaga ostrożności, jeśli ważne jest, czy właściwość należy bezpośrednio do obiektu.