Sobes.tech
Junior

Оператор 'in'-ро дар JavaScript шинос ҳастед? Кадом камбудҳояш ҳастанд?

sobes.tech AI

Ҷавоб аз AI

Оператор in дар JavaScript истифода мешавад, барои санҷидани он, ки оё хосият дар объект ё дар пайванди прототипи он вуҷуд дорад. Масалан:

const obj = { a: 1 };
console.log('a' in obj); // true
console.log('toString' in obj); // true, зеро toString дар прототип аст

Норасоиҳои оператори in:

  • На танҳо хосиятҳои худии объектро месанҷад, балки онҳое, ки тавассути прототип мерос гирифта шудаанд, низ, ки метавонад ба натиҷаҳои бардурӯғ оварда расонад.
  • Фарқ намекунад, ки оё хосият enumeration-шаванда аст ё не.

Агар танҳо хосиятҳои худии объектро санҷидан хоҳед, беҳтар аст, ки усули hasOwnProperty-ро истифода баред:

console.log(obj.hasOwnProperty('a')); // true
console.log(obj.hasOwnProperty('toString')); // false

Бинобар ин, in барои ҷустуҷӯи умумии хосиятҳо муфид аст, аммо эҳтиёткориро талаб мекунад, агар муҳим бошад, ки хосият ба худи объект тааллуқ дорад.