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