Junior
Kas teadsite JavaScripti 'in' operaatorist? Millised on selle puudused?
sobes.tech AI
Vastus AI-lt
JavaScript'is in operatorius naudojamas patikrinti, ar tam tikra savība pastāv objektā arba jo prototipų grandinėje. Pavyzdžiui:
const obj = { a: 1 };
console.log('a' in obj); // true
console.log('toString' in obj); // true, nes toString yra prototipe
in operatoriaus trūkumai:
- Patikrina ne tik objekto savo savybes, bet ir paveldėtas per prototipą, kas gali sukelti klaidingus teigiamus rezultatus.
- Neatskiria, ar savybė yra išvardijama, ar ne.
Jei norite patikrinti tik objekto savo savybes, geriau naudoti metodą hasOwnProperty:
console.log(obj.hasOwnProperty('a')); // true
console.log(obj.hasOwnProperty('toString')); // false
Taigi, in yra naudingas bendram savybių paieškai, bet reikalauja atsargumo, jei svarbu, kad savybė priklauso tiesiogiai objektui.