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.