Sobes.tech
Junior

JavaScript'te 'in' оператору менен таанышсызбы? Анын кемчиликтери эмнелер?

sobes.tech AI

AIден жооп

JavaScriptте in оператору, объектте же анын прототиптук чынжырында мүлк бар-жогун текшерүү үчүн колдонулат. Мисалы:

const obj = { a: 1 };
console.log('a' in obj); // чын
console.log('toString' in obj); // чын, себеби toString прототипте бар

in операторунун кемчиликтери:

  • Ал объекттин өзүнүн мүлктөрүн гана эмес, прототип аркылуу мурас алган мүлктөрдү да текшерет, бул жалган оң натыйжаларга алып келиши мүмкүн.
  • Мүлктүн саналуучулугу же болбогондугун айырмалабайт.

Эгер гана объекттин өзүнүн мүлктөрүн текшергиңиз келсе, анда hasOwnProperty ыкмасын колдонуу жакшы:

console.log(obj.hasOwnProperty('a')); // чын
console.log(obj.hasOwnProperty('toString')); // жалган

Ошентип, in жалпы мүлк издөөгө ылайыктуу, бирок мүлктүн объектке түздөн-түз тиешелүү экендигине көңүл буруу керек.