Junior
Vai jūs zināt 'in' operatoru JavaScript? Kādas ir tā trūkumi?
sobes.tech AI
Atbilde no AI
JavaScript in operators tiek, lai pārbaudītu, vai īpašība pastāv objektā vai tā prototipu ķēdē. Piemēram:
const obj = { a: 1 };
console.log('a' in obj); // true
console.log('toString' in obj); // true, jo toString ir prototipā
in operatora trūkumi:
- Pārbauda ne tikai paša objekta īpašības, bet arī mantojumā iegūtās caur prototipu, kas var novest pie nepatiesiem pozitīviem rezultātiem.
- Neatšķir, vai īpašība ir enumerējama vai nē.
Ja vēlaties pārbaudīt tikai paša objekta īpašības, labāk ir izmantot metodi hasOwnProperty:
console.log(obj.hasOwnProperty('a')); // true
console.log(obj.hasOwnProperty('toString')); // false
Tādējādi, in ir noderīgs vispārējai īpašību meklēšanai, bet prasa uzmanību, ja svarīga ir īpašības piederība tieši objektam.